Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.07.2015, 17:10   #1
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию Неформатированный бинарный файл с 16-ти битными отсчетами

У меня есть числа от -32767 до + 32767. Сначала я перевел их в биты, получилась матрица, в которой строки - это массив этих чисел, а число столбцов = 16, то есть разрядность. Я сохранил каждую строку в текстовый файл без знаков препинания. Призадумался. Не форматированный бинарный файл с 16-ти битными отсчетами. Все-таки, как это? может у меня должны при открытии блокнотом получиться не 101010..., а те же 32000, 16000, 15000, только записанные каким-то чудесным образом? Прошу помочь разобраться, пс - я не программист и просто физически не могу этого знать.
Krasi вне форума Ответить с цитированием
Старый 18.07.2015, 17:46   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Как звучит оригинал задания?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 18.07.2015, 17:49   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Покажи код что у тебя уже готово.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.07.2015, 18:07   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

И вообще, "неформатированный бинарный файл" не выглядит никак. Вернее, он выглядит так, как этого хочет тот, кто его рассматривает. Например, возьмём любой файл. Он может выглядеть так:



или так:



можешь убедиться, это один и тот же файл, я его залил на файлопомойку, посмотри.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 18.07.2015, 18:57   #5
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию

Я понял. Это красиво? Или не то? На разрешение не обращайте внимания.
Вложения
Тип файла: txt lovalova.txt (2.8 Кб, 133 просмотров)
Krasi вне форума Ответить с цитированием
Старый 18.07.2015, 19:06   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Это красиво?
Дело не в красоте )
Дело в том, что это бинарный (двоичный) файл. Разница между текстовым и бинарным в том, что текстовый человек сможет прочитать и понять с экрана, даже если он далек от компьютерной техники.
Ты пойми - любой файл бинарный. И текстовый тоже является разновидностью бинарного.
Цитата:
Или не то?
Приведи, будьласка, текст твоего задания, как тебе препод его выдал.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.07.2015, 19:21   #7
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Цитата:
Неформатированный бинарный файл с 16-ти битными отсчетами
Я так понимаю, это просто файл, в который будут записываться данные по два байта.

Чтение такого файла на C++ будет выглядеть как:
Код:
#include <iostream>
#include <fstream>

using namespace std;

void main(){
    ifstream file("file.txt");
    int tempInt;
    while( file.read((char*)&tempInt,sizeof(int)) ){
            cout << tempInt << endl;
    };
    file.close();
}
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).

Последний раз редактировалось Krasiosoft; 18.07.2015 в 19:29.
Krasiosoft вне форума Ответить с цитированием
Старый 20.07.2015, 21:35   #8
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию

Ок, я задачу-то решил, и мне скучно ее решать по-другому, а придется. Поэтому я ничего не теряю, и просто вот вам предложение сказать мне, как эту задачу решить в 5 программных строчек?! Там же DDS генератор по сути дела.

Cформировать синусоидальный сигнал с нулевой начальной фазой с частотой
837.7 Гц на частоте дискретизации 8 кГц. Разрядность сигнала 16 бит.
Длительность сигнала 18 секунд. Амплитуда сигнала -6 дБ от full-scale
16-битной синусоиды. Таблица синусов длиной 512 элементов задана.
Выходные данные: записать полученный сигнал в неформатированный бинарный
файл с 16-битными отсчетами
Дополнительные условия: не использовать операции с плавающей точкой
Язык реализации: C

То есть я могу выбирать любые элементы из таблицы, но вот алгоритм на С нужен, как это делать, чтобы получилась частота 837,7 Гц. Давайте начнем вообще с того, сколько вариантов решения задачи имеется, какие?=)

Последний раз редактировалось Krasi; 20.07.2015 в 21:37.
Krasi вне форума Ответить с цитированием
Старый 20.07.2015, 22:03   #9
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

С частотами не работал, но готов помочь с реализацией на С, если сможете все подробно объяснить.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Старый 21.07.2015, 09:26   #10
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию

Нужно взять из таблицы специальные значения, соответствующие амплитудным значениям сигнала частотой 837,7 Гц, это и будет требуемый сигнал, который можно будет воспроизвести на частоте дискретизации 8000 Гц. Но суть в том, что этот сигнал - просто 16-битные числа, то есть если выборок сигнала будет 144000, то размер файла должен быть 144000*16/8 = 288 кбайт. Вот такой файлик мне и нужно получить. Но проблема как раз в том, что я не сильно понимаю именно то, как нужно правильно выбирать выборки из таблицы длиной 512, чтобы получилась требуемая частота, а код был простым и длиной всего в 5-7 строк.

Последний раз редактировалось Krasi; 21.07.2015 в 09:28.
Krasi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Бинарный файл lelik346 Софт 7 04.12.2014 09:13
C++, задача на бинарный файл (Бинарный файл состоит из записей по 5 бит) zaitsevmishka Помощь студентам 3 16.05.2014 21:39
Бинарный файл nXs Общие вопросы Delphi 4 26.03.2011 11:40
Бинарный файл mchip Microsoft Office Excel 10 05.03.2009 19:10
Бинарный файл Bayazet Общие вопросы Delphi 1 04.03.2009 16:39