Обработка wave файла с помощью низкочастотного фильтра
Процесс дискретизации сигнала, заданного аналитически. Преобразование сигнала в цифровую форму с помощью аналого-цифровых преобразователей. Дискретизация непрерывных сигналов, их квантование по уровню. Расчет коэффициентов для низкочастотного фильтра.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 11.02.2016 |
Размер файла | 755,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
Размещено на http://www.allbest.ru
ВВЕДЕНИЕ
wave файл дискретизация сигнал
Цифровой обработкой сигналов принято называть в вычислительной технике арифметическую обработку последовательностей равноотстоящих во времени отсчетов. Под цифровой обработкой понимают также обработку одномерных и многомерных массивов данных.
Безусловно, данная обработка может быть выполнена с помощью обычных вычислительных средств. Например, на современном персональном компьютере с процессором типа Pentium IV обработка не представляет никаких трудностей. Однако именно специфика последовательности предоставляет дополнительные возможности для достижения высокой эффективности при жестких ограничениях систем реального времени.
Современное гражданское применение методов цифровой обработки лежит в области мультимедийных технологий, то есть обработки звука и изображений, включающей их сжатие, кодировку. В области цифровой связи цифровыми методами выполняется модуляция и демодуляция данных для передачи по каналам связи. Сегодня многие пользователи, имеющие на своем рабочем столе персональный компьютер, даже и не подозревают о наличии вычислительных средств - микропроцессоров, построенных на принципах цифровой обработки сигналов, находящихся на расстоянии вытянутой руки.
В курсовой работе необходимо будет сделать цифровую обработку сигнала, показать результаты на графике, сделать квантование сигнала, его фильтрацию, а также найти погрешность вычислений. Для реализации поставленной задачи используется язык программирования С++, а также средство разработки MatLab.
1. ПОСТАНОВКА ЗАДАЧИ
Выполнить дискретизацию сигнала, заданного аналитически
Показать на одном графике исходный и дискретный во времени сигнал
Выполнить квантование сигнала для заданного пользователем числа уровней квантования.
Показать на одном графике исходный и дискретный сигнал
Выполнить фильтрацию сигнала с помощью фильтра (по варианту)
Восстановить во временной области отфильтрованный сигнал
Показать на одном графике исходный, восстановленный и разностный сигнал.
Рассчитать ошибку
Таблица 1.1-Вариант индивидуального задания
7. |
Звуковий файл wav100_1000_44100_16 |
ФНЧ з частотою зрізу 300 Гц |
Середньоквадратична (MSE) |
Итак, значит, во время выполнения лабораторной работы необходимо получить спектр сигнала, разложить его в ряд Фурье и представить в частотной области. Спектр сигнала распределить по частоте, учитывая, что у каждой гармошки свой фазовый сдвиг. Привести аналоговый сигнал в дискретном времени. Затем получить дискретный спектр сигнала, чтобы применить низкочастотный фильтр, который заключается в том, что мы оставляем частоты ниже заданного ограничения.
2. ХАРАКТЕРИСТИКА СИГНАЛОВ В СИСТЕМАХ ЦИФРОВОЙ ОБРАБОТКИ
Перед тем, как приступить к обработке сигналов, стоит рассмотреть их характеристики и особенности.
Цифровая обработка, в отличие от аналоговой, традиционно используемой во многих радиотехнических устройствах, является более дешевым способом достижения результата, обеспечивает более высокую точность, миниатюрность и технологичность устройства, температурную стабильность.
Наиболее жесткие требования к аппаратной части цифровой обработки предъявляют радиолокационные системы. Основным содержанием цифровой обработки здесь является фильтрация входных сигналов антенны, частоты сигналов от 10 МГц до 10 ГГц. Размеры преобразований могут достигать до 214 комплексных точек, требования по быстродействию составляют 109 умножений в секунду.
При обработке цифровых сигналов радиолокатора используются алгоритмы цифровой фильтрации и спектрального анализа (вычисление дискретного и быстрого преобразования Фурье - ДПФ и БПФ), алгоритмы корреляционного анализа, обратной свертки, специальные алгоритмы линейного предсказания. В системах обработки звука цифровые процессоры обработки сигнала решают задачи анализа, распознавания и синтеза речи, сжатия речи в системах телекоммуникации. Для систем обработки изображений типовыми задачами являются улучшение изображений, сжатие информации для передачи и хранения, распознавание образов. При обработке цифровых звуковых сигналов используются алгоритмы цифровой фильтрации и спектрального анализа (вычисление ДПФ и БПФ), алгоритмы корреляционного анализа, обратной свертки, специальные алгоритмы линейного предсказания. В большинстве случаев удовлетворительные результаты обеспечивает формат данных с фиксированной запятой, длина слова 16 бит, частоты сигналов от 4 до 20 кГц (до 40 кГц в случае обработки музыки), требуемая производительность - до 10x106 операций в секунду - 10 MIPS по компьютерной терминологии.
Цифровые сигналы формируются из аналоговых операцией дискретизации - последовательными квантованными отсчетами (измерением) амплитудных значений сигнала через определенные интервалы времени t или любой другой независимой переменной x. В принципе известны методы ЦОС для неравномерной дискретизации данных, однако области их применения достаточно специфичны и ограничены. Условия, при которых возможно полное восстановление аналогового сигнала по его цифровому эквиваленту с сохранение всей исходно содержавшейся в сигнале информации, выражаются теоремами Найквиста-Котельникова-Шеннона, сущность которых практически одинакова. Для дискретизации аналогового сигнала с полным сохранением информации в его цифровом эквиваленте максимальные частоты в аналоговом сигнале должны быть не менее чем вдвое меньше, чем частота дискретизации, то есть fmax (1/2)fd. Если это условие нарушается, в цифровом сигнале возникает эффект маскирования (подмены) действительных частот "кажущимися" более низкими частотами. При этом в цифровом сигнале вместо фактической регистрируется "кажущаяся" частота, а, следовательно, восстановление фактической частоты при восстановлении аналогового сигнала становится невозможным.
Преобразование сигнала в цифровую форму выполняется аналого-цифровыми преобразователями (АЦП). Как правило, они используют двоичную систему счисления с определенным числом разрядов в равномерной шкале. Увеличение числа разрядов повышает точность измерений и расширяет динамический диапазон измеряемых сигналов. Потерянная из-за недостатка разрядов АЦП информация невосстановима, и существуют лишь оценки возникающей погрешности «округления» отсчетов, например, через мощность шума, порождаемого ошибкой в последнем разряде АЦП. Для этого используется понятие отношения «сигнал/шум» - отношение мощности сигнала к мощности шума (в децибелах). Наиболее часто применяются 8-, 10-, 12-, 16-, 20- и 24-х разрядные АЦП. Каждый дополнительный разряд улучшает отношение сигнал/шум на 6 децибел. Однако увеличение количества разрядов снижает скорость дискретизации и увеличивает стоимость аппаратуры. Важным аспектом является также динамический диапазон, определяемый максимальным и минимальным значением сигнала.
Если входной сигнал порождает однозначный выходной сигнал при любом сдвиге , то систему называют инвариантной во времени. Ее свойства можно исследовать в любые произвольные моменты времени. Для описания линейной системы вводится специальный входной сигнал - единичный импульс (импульсная функция). В силу свойства суперпозиции и однородности любой входной сигнал можно представить в виде суммы таких импульсов, подаваемых в разные моменты времени и умноженных на соответствующие коэффициенты. Выходной сигнал системы в этом случае представляет собой сумму откликов на эти импульсы, умноженных на указанные коэффициенты. Отклик на единичный импульс называют импульсной характеристикой системы . Соответственно, отклик на произвольный входной сигнал можно выразить сверткой вида:
(2.1)
Если при , то систему называют каузальной (причинной). В такой системе реакция на входной сигнал появляется только после поступления сигнала на ее вход. Некаузальные системы реализовать физически невозможно. Если требуются физически реализовать свертку сигналов с двусторонними операторами (при дифференцировании, преобразовании Гильберта, и т.п.), то это выполняется с задержкой (сдвигом) входного сигнала минимум на длину левосторонней части оператора свертки.
Z-преобразование. Для анализа дискретных сигналов и систем широко используется z-преобразование, которое является обобщением дискретного преобразования Фурье. Этим преобразованием произвольной непрерывной функции s(t), равномерно дискретизированной и отображенной отсчетами ставится в соответствие степенной полином по (или степенной полином по ), последовательными коэффициентами которого являются отсчеты функции:
(2.2),
где - произвольная комплексная переменная. Это преобразование позволяет в дискретной математике использовать всю мощь дифференциального и интегрального исчисления, алгебры и прочих глубоко развитых разделов аналитической математики. Дискретные системы обычно описывается линейными разностными уравнениями с постоянными коэффициентами:
, (2.3)
Этим уравнением устанавливается то, что выходной сигнал системы в определенный момент (например, в момент времени ) зависит от значений входного сигнала в данный и предыдущие моменты, и значений сигнала в предыдущие моменты времени.
Z-преобразование этого уравнения, выраженное относительно передаточной функции системы , представляет собой дробно-рациональную функцию в виде отношения двух полиномов от . Корни полинома в числителе называются нулями, а в знаменателе - полюсами функции . Значения нулей и полюсов позволяют определить свойства линейной системы. Так, если все полюсы по модулю больше единицы, то система является устойчивой. Нули функции обращают в ноль и показывают, какие колебания вовсе не будут восприниматься системой (“антирезонанс”). Систему называют минимально-фазовой, если все полюсы и нули передаточной функции лежат вне единичной окружности на комплексной плоскости. Важно заметить, что z-преобразования с отрицательными степенями меняет положение полюсов и нулей относительно единичной окружности (область вне окружности перемещается внутрь окружности, и наоборот).
Функциональные преобразования сигналов. Одним из основных методов частотного анализа и обработки сигналов является преобразование Фурье. Различают понятия “преобразование Фурье” и “ряд Фурье”. Преобразование Фурье предполагает непрерывное распределение частот, ряд Фурье задается на дискретном наборе частот. Сигналы также могут быть заданы в наборе временных отсчетов или как непрерывная функция времени. Это дает четыре варианта преобразований - преобразование Фурье с непрерывным или с дискретным временем, и ряд Фурье с непрерывным временем или с дискретным временем. Наиболее практична с точки зрения цифровой обработки сигналов дискретизация и во временной, и в частотной области, но не следует забывать, что она является аппроксимацией непрерывного преобразования. Непрерывное преобразование Фурье позволяет точно представлять любые явления. Сигнал, представленный рядом Фурье, может быть только периодичен. Сигналы произвольной формы могут быть представлены рядом Фурье только приближенно, т.к. при этом предполагается периодическое повторение рассматриваемого интервала сигнала за пределами его задания. При дискретизации и во временной, и в частотной области, обычно говорят о дискретном преобразовании Фурье (ДПФ): , где - количество отсчетов сигнала. Применяется оно для вычисления спектров мощности, оценивания передаточных функций и импульсных откликов, быстрого вычисления сверток при фильтрации, расчете корреляции, расчете преобразований Гильберта, и т.п.
3. ДИСКРЕТИЗАЦИЯ НЕПРЕРЫВНЫХ СИГНАЛОВ
Обработка сигналов на цифровых ЭВМ начинается с замены непрерывного сигнала X(t) на дискретную последовательность, для которой применяются такие обозначения
x(nT) , x(n) , xn , {x0 ; x1 ; x2 ; … } .
Дискретизация осуществляется электронным ключом (ЭК) через равные интервалы времени T (Рис. 4.1).
Рисунок 4.1-Дискретизация
Дискретная последовательность аппроксимирует исходный сигнал X(t) в виде решетчатой функции X(nT). Частота переключения электронного ключа fд и шаг дискретизации T связаны формулой
fд = 1 / T . (4.1)
Дискретная последовательность или дискретный сигнал выражается через исходный непрерывный (аналоговый) сигнал следующим образом
x(nT) = x(t)d(t - nT) , (4.2)
где d(t) - дискретная d - функция (Рис. 4.2, а),
d(t - nT) - последовательность d - функций (Рис. 4.2, б).
Рисунок 4.2-Дискретизация
Погрешность, возникающую при замене аналогового сигнала дискретным сигналом, удобно оценить сравнивая спектры этих сигналов.
Связь спектров дискретного и непрерывного сигналов
Исходное выражение для спектра дискретного сигнала с учетом запишется следующим образом
X(jw) =x(nT) e-jwt dt =x(t)d(t - nT) e-jwt dt .
Периодическую последовательность d - функций здесь можно разложить в ряд Фурье
d(t - nT) =,
где с учетом формулы связи спектров периодического и непериодического сигналов
, поскольку Fd(jw) = 1
После замены в исходном выражении периодической последовательности d - функций ее разложением в ряд Фурье получим
X(jw) =x(t)() e-jwt dt =x(t)e-jwt dt .
Учитывая здесь теорему смещения спектров, т.е. :
если f(t) ® F(jw), то f(t)® F[j(w ± w0)] ,
последнее равенство можно представить в виде формулы, выражающей связь спектров дискретного X(jw) и аналогового Xa(jw) сигналов
X(jw) =Xa[j(w -)] . (4.3)
На основании формулы (4.3) с учетом поясняющих рисунков 4.3, а, б можно сделать следующие выводы :
Рисунок 4. 3-Спектр сигнала
Спектр дискретного сигнала состоит из суммы спектров исходного непрерывного сигнала, сдвинутых друг относительно друга по оси частот на величину равную частоте дискретизации wд
Спектры аналогового и дискретного сигналов совпадают в диапазоне частот [-0,5wд ; 0,5wд], если удовлетворяется неравенство
wв Ј 0,5wд , (4.4)
где wв - верхняя частота спектра аналогового сигнала.
Равенство в (4.4) соответствует утверждению теоремы Котельникова о минимальной частоте wд.
Смежные спектры Xa(jw) в (4.3) частично перекрываются, если условие (4.4) не выполняется (Рис 4.3, б). В этом случае спектр дискретного сигнала искажается по отношению к спектру аналогового сигнала. Эти искажения являются неустранимыми и называются ошибками наложения.
Аналоговый сигнал можно восстановить полностью по дискретному сигналу с помощью ФНЧ, частота среза которого wс = 0,5wд. Это утверждение основано но совпадении спектров дискретного сигнала на выходе ФНЧ и непрерывного сигнала. Сигнал восстанавливается без искажений, если выполняется условие (4.4). в противном случае сигнал восстанавливается с искажениями, обусловленными ошибками наложения.
Выбор частоты дискретизации осуществляется в соответствии с (4.4). если частота wв не известна, то выбор из wд определяется расчетом по формуле (4.1), в которой интервал T выбирается приближенно с таким расчетом, чтобы аналоговый сигнал восстанавливался без заметных искажений плавным соединением отсчетов дискретного сигнала. Дискретные преобразования позволяют описывать сигналы с дискретным временем в частотных координатах или переходить от описания во временной области к описанию в частотной. Переход от временных (пространственных) координат к частотным необходим во многих приложениях обработки данных.
Самым распространенным преобразованием является дискретное преобразование Фурье. При K отсчетов функции:
Основные свойства прямого Z-преобразование.
1. Свойство линейности.
Предположим, имеем следующую последовательность дискретного преобразования:
X1(nT) X2(nT) X3(nT)
X1(Z) X2(Z) X3(Z)
Имеем: С1=const и C2=const, тогда преобразование является линейным если:
X3(Z) = C1X1 (Z) +C2X2 (Z) - линейное
X3(nT) = C1X1(nT) +C2X2(nT) преобразование
2. Свойства сдвига.
Утверждает, что если
X2(nT) = X1((n-m)T), тогда
X2(Z) = X1(-mT)+ X1((-m+1)T)Z-1+…+X1(-T)Z-(m-1)+Z-mX1(Z)
X2(Z) = Z-mX1(Z)
X3(Z) =
Где с - замкнутый контур в комплексной v плоскости, которая обхватывает все особенности X1 u X2 .
3. Обратное Z-преобразование.
Оно определяется следующей функцией:
Обратное Z-преобразование может быть определено путем вычисления интеграла, который можно записать следующим образом:
Обратное Z-преобразование может быть определено путем вычисления интеграла, если этот интеграл не расходится.
Z-преобразование используется при проектировании фильтров и характеристик спектральных.
4. ДИСКРЕТНОЕ ПРЕОБРАЗОВАНИЕ ФУРЬЕ
Если сигнал ограничен во времени значением tu , а его спектр - частотой wв , то он полностью характеризуется конечным числом отсчетов N как во временной, так и в частотной областях (Рис. 5.1, а, б) :
N = tu/T - во временной области, где T = 1/fд ,
N = fд/f1 - в частотной области, где f1 = 1/tu .
Рисунок 5.1.-Дискретный сигнал
Дискретному сигналу соответствует периодический спектр, дискретному спектру будет соответствовать периодический сигнал. В этом случае отсчеты X(nT) = {X0 ; X1 ; … XN-1} являются коэффициентами ряда Фурье периодической последовательности X(jkw1), период, который равен wд. Соответственно, отчеты X(jkw1) = {X0 ; X1 ; … XN-1} являются коэффициентами ряда Фурье периодической последовательности X(nT), период, который равен tu.
Связь отсчетов сигнала и спектра устанавливается формулами дискретного преобразования Фурье (ДПФ). Формулы ДПФ следуют из формул Фурье для дискретных сигналов (1.5), если непрерывную переменную w заменить дискретной переменной kw1, то есть
w ® kw1 , dw ® w1.
После замены переменной в (5.1) получим
X(jkw1) = x(nT),
x(nT) =X(jkw1).
Отсюда после подстановки w1 = wд/N, T = 2p/wд формулы ДПФ принимают окончательный вид
X(jkw1) =x(nT)- прямое ДПФ ,
x(nT) =X(jkw1)- обратное ДПФ (5.2)
Сигнал с ограниченным спектром имеет, строго говоря, бесконечную протяженность во времени и, соответственно бесконечное число отсчетов и непрерывный спектр. Спектр останется непрерывным, если число отсчетов сигнала ограничить конечным числом N. Формулы (5.2) в этом случае будут выражать связь между N отсчетами дискретного сигнала и N отсчетами его непрерывного спектра, который можно полностью восстановить по его отсчетам.
Сигнал с конечным числом отсчетов N имеет спектр, который повторяет с конечной погрешностью спектр сигнала с бесконечным числом отсчетов : спектры совпадают на отсчетных частотах kw1 и отличаются на других частотах. Отличие спектров тем меньше, чем больше N.
Уместно заметить, что выбор шага дискретизации достаточно контролировать в точках максимальной крутизны исходной функции X(t). В рассмотренном примере такой точкой является момент времени t = 0.
В заключение отметим, что формулы ДПФ упрощают расчетные процедуры по взаимному преобразованию сигналов и их спектров, что особенно важно для технических систем, функционирующих В реальном масштабе времени. В этих случаях применяется алгоритм быстрого преобразования Фурье (БПФ), основанный на формулах ДПФ. Ускоренная процедура расчетов по алгоритму БПФ достигается за счет исключения повторных арифметических операций, характерных для расчетов по формулам ДПФ.
5. КВАНТОВАНИЕ (ОБРАБОТКА СИГНАЛОВ)
Квантование (англ. quantization) - в информатике разбиение диапазона значений непрерывной или дискретной величины на конечное число интервалов. Существует также векторное квантование - разбиение пространства возможных значений векторной величины на конечное число областей. Квантование часто используется при обработке сигналов, в том числе при сжатии звука и изображений. Простейшим видом квантования является деление целочисленного значения на натуральное число, называемое коэффициентом квантования рис 6.1.
Рисунок 6.1 - Квантованный сигнал
Однородное (линейное) квантование - разбиение диапазона значений на отрезки равной длины. Его можно представлять как деление исходного значения на постоянную величину (шаг квантования) и взятие целой части от частного : (рис 6.2.)
.
Рисунок 6. 2 - Неквантованный сигнал с дискретным временем
Не следует путать квантование с дискретизацией (и, соответственно, шаг квантования с частотой дискретизации). При дискретизации изменяющаяся во времени величина (сигнал) замеряется с заданной частотой (частотой дискретизации), таким образом, дискретизация разбивает сигнал по временной составляющей (на графике - по горизонтали). Квантование же приводит сигнал к заданным значениям, то есть, разбивает по уровню сигнала (на графике - по вертикали).
Сигнал, к которому применены дискретизация и квантование, называется цифровым.
Рисунок 6.3 - Цифровой сигнал
При оцифровке сигнала уровень квантования называют также глубиной дискретизации или битностью. Глубина дискретизации измеряется в битах и обозначает количество бит, выражающих амплитуду сигнала. Чем больше глубина дискретизации, тем точнее цифровой сигнал соответствует аналоговому. В случае однородного квантования глубину дискретизации называют также динамическим диапазоном и измеряют в децибелах (1 бит ? 6 дБ).
Квантование по уровню - представление величины отсчётов цифровыми сигналами. Для квантования в двоичном коде диапазон напряжения сигнала от Umin до Umax делится на 2n интервалов. Величина получившегося интервала (шага квантования):
Рисунок 6.4-Шаг квантования
Каждому интервалу присваивается n-разрядный двоичный код - номер интервала, записанный двоичным числом. Каждому отсчёту сигнала присваивается код того интервала, в который попадает значение напряжения этого отсчёта. Таким образом, аналоговый сигнал представляется последовательностью двоичных чисел, соответствующих величине сигнала в определённые моменты времени, то есть цифровым сигналом. При этом каждое двоичное число представляется последовательностью импульсов высокого (1) и низкого (0) уровня.
6. ФИЛЬТРЫ
MatLab - пакет прикладных программ по основным функциям обработки.
Задачи:
- Можно проектировать фильтры.
- Выполнять частотный и спектральный анализ сигналов.
- Выделение признаков из дискретного сигнала и моделирование параметров.
Фильтрация
Пакет позволяет выполнять фильтрацию сигнала а с помощью следующих типов фильтра:
а) Низкочастотные.
б) Полосовые.
в) Высокочастотные.
Этот пакет позволяет выполнять спектральный анализ, ДПФ(дискретное преобразование Фурье), выполнять непрерывные преобразования Фурье, можно выполнять Z-преобразования сигнала. В интервальном режиме можно проектировать сигналы определенной формы. Можно моделировать сигнал.
Для выполнения поставленной задачи нам необходимо найти коэффициенты для низкочастотного фильтра.
Для этого перейдем в MatLabe в окно Filret Design и зададим необходимый нам фильтр и его параметры рис 7.1.
Рисунок 7.1.-Работа с фильтром в МатЛабе
После этого сохраняем файл и открываем его так текст рис7.2.
Рисунок 7.2.-Открытие файла
7. ЦИФРОВАЯ СИСТЕМА ОБРАБОТКИ СИГНАЛОВ
Обработка дискретных сигналов осуществляется как правило в цифровой форме: каждому отсчёту ставится в соответствие двоичное кодовое слово и, в результате, действия над отсчётами заменяются на действия над кодовыми словами. Таким образом дискретная цепь становится цифровой цепью, цифровым фильтром (ЦФ). Перевод отсчётов в двоичные кодовые слова происходит в аналогово-цифровом преобразователе (АЦП). На выходе ЦФ (рис.3.1) осуществляется обратная операция: кодовые слова в цифро-аналоговом преобразователе превращаются в отсчёты дискретного сигнала и, наконец, на выходе, синтезирующего фильтра (СФ) формируется обработанный аналоговый сигнал.
Рисунок 8.1.-Обработанный аналоговый сигнал
Дискретная и цифровая цепи описываются одинаковыми уравнениями. Отличие состоит в приближённом характере представления отсчётов сигнала кодовыми словами конечной размерности (ошибки квантования). Поэтому сигнал на выходе цифровой цепи отличается от идеального варианта на величину погрешности квантования.
Цифровая техника позволяет получить высокое качество обработки сигналов несмотря на ошибки квантования: ошибки (шумы) квантования можно привести в норму увеличением разрядности кодовых слов. Рациональные способы конструирования цифровой цепи также способствуют минимизации уровня шумов квантования.
Расчёт цифровой цепи по заданным требованиям к её характеристикам имеет ряд принципиальных особенностей в зависимости от наличия обратной связи. Эти особенности являются следствием конечной длины импульсного отклика нерекурсивного ЦФ.
Поэтому нерекурсивные фильтры содержат большое число элементов цепи, но вместе с тем имеют целый ряд важных достоинств: нерекурсивные ЦФ всегда устойчивы, позволяют строить фильтры с минимальной линейной фазой, отличаются простой настройкой. С учётом изложенного становятся понятны причины, по которым методы расчёта нерекурсивных ЦФ и рекурсивных цифровых фильтров принято рассматривать отдельно.
Активный фильтр - один из видов аналоговых электронных фильтров, в котором присутствует одна или несколько активных компонент, к примеру транзистор или операционный усилитель. Эти обладающие частотной избирательностью схемы используются для усиления или ослабления определенных частот в звуковой аппаратуре, в генераторах электромузыкальных инструментов, в сейсмических приборах, в линиях связи и т.п.
В активных фильтрах используется принцип отделения элементов фильтра от остальных электронных компонент схемы. Часто бывает необходимо, чтобы они не оказывали влияния на работу фильтра.
Существует несколько различных типов активных фильтров, некоторые из которых также имеют и пассивную форму:
* Фильтр высоких частот -- не пропускает частоты ниже частоты среза.
* Фильтр низких частот -- не пропускает частоты выше частоты среза.
* Полосовой фильтр -- не пропускает частоты выше и ниже некоторой полосы.
* Режекторный фильтр -- не пропускает определённую ограниченную полосу частот.
В данной курсовой работе используется фильтр низких частот.
Опишем его подробнее.
Фильтр нижних частот (ФНЧ) -- один из видов аналоговых или электронных фильтров, эффективно пропускающий частотный спектр сигнала ниже некоторой частоты (частоты среза), и уменьшающий (подавляющий) частоты сигнала выше этой частоты. Степень подавления каждой частоты зависит от вида фильтра.
В отличие от фильтра нижних частот (НЧ), фильтр верхних частот пропускает частоты сигнала выше частоты среза, подавляя низкие частоты.
Реализация фильтров нижних частот может быть разнообразной, включая электронные схемы, программные алгоритмы, акустические барьеры, механические системы и т. д.
Для звуковых волн твёрдый барьер играет роль фильтра нижних частот -- например, в музыке, играющей в другой комнате, легко различимы басы, а высокие частоты отфильтровываются (звук «оглушается»). Точно так же ухом воспринимается музыка, играющая в закрытой машине.
Электронные фильтры нижних частот используются для подавления пульсаций напряжения на выходе выпрямителей переменного тока, для разделения частотных полос в акустических системах, в системах передачи данных для подавления высокочастотных помех и ограничения спектра сигнала, а также имеют большое число других применений.
Радиопередатчики используют ФНЧ для блокировки гармонических излучений, которые могут взаимодействовать с низкочастотным полезным сигналом и создавать помехи другим радиоэлектронным средствам.
Механические низкочастотные фильтры часто используют в контурах АВМ непрерывных систем управления в качестве корректирующих звеньев.В обработке изображений низкочастотные фильтры используются для очистки картинки от шума и создания спецэффектов, а также при сжатии изображений. Рис 8.2.
Рисунок 8.2. -Осциллограмма простейшего RC фильтра нижних частот
8. ОРГАНИЗАЦИЯ WAV ФАЙЛОВ
Рассмотрим структуру стандартного WAV-файла. Он представляет собой две, четко делящиеся, области. Одна из них - заголовок файла, другая - область данных. В заголовке файла хранится следующая информация:
Размер файла.
Количество каналов.
Частота дискретизации.
Количество бит в сэмпле (глубина звучания).
Звук состоит из колебаний, которые при оцифровке приобретают ступенчатый вид. Этот вид обусловлен тем, что компьютер может воспроизводить в любой короткий промежуток времени звук определенной амплитуды (громкости) и этот короткий момент далеко не бесконечно короткий. Продолжительность этого промежутка определяет частота дискретизации. Например, если файл с частотой дискретизации 44.1 kHz, это значит, что тот короткий промежуток времени равен 1/44100 секунды (следует из размерности величины Гц = 1/с). Современные звуковые карты поддерживают частоту дискретизации до 192 kHz. Так, со временем разобрались.
Амплитуда сигнала выражается числом, занимаемым в памяти (файле) 8, 16, 24, 32 бит (теоретически можно и больше). Таким образом, чем больше число занимает места в памяти (файле), тем больше диапазон значений для этого числа, а значит и для амплитуды.
В данной работке считывание такого файла производилось следующим образом:
Вызывалась функция ReadWaveFile(szFileName,&s), которая принимала в качестве параметров путь к файлу и указатель на буфер, в который записывались отсчеты со всех входных каналов. Возвращаемое значение данной функции - количество реально считанных отсчетов.
Отдельно считывались метаданные с помощью функции ReadMetaData(szFileName). Входной параметр данной функции - путь к файлу, а выходная информация - структуры, в которой охраняться все метаданные файла.
Из массива s, в котором содержаться отсчеты со всех каналов выбирались значения только одного определенного канала и записывались в массив samples.
Производилась обработка массива отсчетов samples и вывод необходимой информации.
Зашифрованный WAV файл имеет следующую структуру: табл 9.1.
Далее идут сами отсчеты, причем если каналов несколько, то отсчеты чередуются. Для обработки таких файлов удобно пользоваться структурами вида (синтаксис языка С++):
struct RIFF {
char ID[4]; /"RIFF"
long Len; // длина файла без этого заголовка
}
Дальше обычно заголовок собственно WAVа:
struct WAVE {
char ID[4]; // "WAVE" - заголовок WAV
char Fmt[4]; // "fmt " - thunk формата
long Len; // длинна етого thunka
int Format; // собственно формат
int Channels; // число каналов (1/2)
long SamplesPerSecond; // отсчетов/сек
long AvgBytesPerSecond; // байтов/сек
int BlockAlign; // выравнивание блоков
int BitsPerSample; // битов на отсчет
}
Таблица 9.1.-Общая структура wav файла
Местоположение(адрес) |
размер |
Описание |
|
0..3 |
4 байта |
Должно быть "RIFF". Является началом RIFF-цепочки. |
|
4..7 |
4 байта |
Размер RIFF-цепочки в байтах. |
|
8..11 |
4 байта |
Должно быть "WAVE" |
|
12..15 |
4 байта |
Должно быть "fmt " |
|
16..19 |
4 байта |
Должно быть 16 |
|
20..21 |
2 байта |
Формат. |
|
22..23 |
2 байта |
Количество каналов |
|
24..27 |
4 байта |
Частота дискретизации |
|
28..31 |
4 байта |
Количество байт, переданных за секунду воспроизведения |
|
32..33 |
2 байта |
Количество байт в сэмпле |
|
34..35 |
2 байта |
Количество бит в сэмпле |
|
36..39 |
4 байта |
Должно быть "data" |
|
40..43 |
4 байта |
Количество байт в области данных |
struct DATA {
char ID[4]; // "data"
long Len; // длина этого thunkа (должен быть выровнен на границу слова)
}
9. ПРОЕКТИРОВАНИЕ ФИЛЬТРОВ
Для расчета коэффициентов фильтр в рамках данной работы использовался пакет fdatool среды MATLAB.
Для расчета коэффициентов низкочастотного фильтра необходимо:
Выбрать тип фильтров;
Установить частоту дискретизации входного сигнала . В данной работе она равна 44,1 кГц.
Установить частоту пропускания 300.
Требуется установить требуемое значение порядка фильтра запустить проектировщик (кнопка design filter).
Далее анализируются АЧХ и ФЧХ. Если все требования выполнены и фильтр устойчив при необходимости можно сгенерировать заголовочный файл для программ на языках С/С++, в котором будут храниться массив с коэффициентами фильтра, и его порядок. Файл генерируется следующим образом: targets->Generate C Header->Generate.
10. ОПИСАНИЕ ПРИЛОЖЕНИЯ
Приложение имеет название Project1.exe.
При его запуске мы видим следующее рис 11.1.
Рисунок 11.1.-Запуск программы
Для того что бы приступить к работе нужно выбрать пункт меню «Файл», далее «Открыть» рис 11.2. и выбрать файл с расширением wav , который необходимо обработать .
Рисунок 11.2.-выбор файла для обработки
Далее появится уже загруженный сигнал рис 11.3.
Рисунок 11.4.-Входной сигнал
После этого необходимо сделать преобразование в ряды Фурье. Выбираем пункт меню «Действия» , потом «Получить спектр сигнала», потом «DTF». Результат показан на рис 11.5.
Рисунок 11.5.-Спектр сигнала
Для того, что применить низкочастотный фильтр выбираем также пункт меню «Действия», «Выполнить фильтрацию», «ФНЧ». Рис 11.6.
Рисунок 11.6.-Применение низкочастотного фильтра
Для того, что бы результат ждать не очень долго мы обрабатываем только часть сигнала. На рис видно, что с помощью фильтра мы обрезаем высокие частоты и сигнал становится другим. Также приложение дает возможность вычислить среднюю квадратическую погрешность рис 11.7.
Рисунок 11.7.-Погрешность
Последний пункт меню «Опции » позволяет очистить уже сделанную работу. Кроме этого мы имеем возможность сохранить проделанную работу и выйти с приложения.
ВЫВОДЫ
Цифровая обработка сигналов является актуальной темой на сегодняшний день, которая находит применение практически во всех сферах науки и техники.
В рамках данной курсовой работы были изучены предмет и методы цифровой обработки сигналов, изучены и систематизированы способы анализа сигналов с помощью -преобразований и преобразований Фурье, рассмотрены некоторые алгоритмы быстрого преобразования Фурье, способы и условия дискретизации аналоговых и восстановления цифровых сигналов.
Был разработан и отлажен программный продукт, который позволяет выполнять следующие действия:
Анализировать форму входного цифрового сигнала
Строить спектр сигнала
Фильтровать исходный сигнал с помощью низкочастотного фильтра
Анализировать ошибку фильтрации
СПИСОК Литературы
1. Специализированный процессор для выполнения быстрого преобразования Фурье и обработки сигналов СПФ СМ. Рекламные материалы. М.: ИНЭУМ, 1984.
2. Корнеев В. В., Киселев А. В. Современные микропроцессоры. М.: НОЛИДЖ, 1998. 240 с.
3. Цифровые процессоры обработки сигналов. Справочник. Остапенко А. Г., Лавлинский С. И., Сушков А. В. и др. Под ред. А. Г. Остапенко. М.: Радио и связь, 1994. 264 с.
4. Клингман Э. Проектирование специализированных микропроцессорных систем. Пер. с англ. М.: Мир, 1985. 363 с.
5. Белоус А. И. и др. Микропроцессорный комплект БИС серии К1815 для цифровой обработки сигналов. Справочник. Белоус А. И., Поддубный О. Б., Журба В. М. Под ред. А. И. Сузопарова. М.: Радио и связь, 1992. 256 с.
6. Лапа В. Г. Математические основы кибернетики. Киев, Высшая школа, 1974. 452 с.
7. Лидовский В.И. Теория информации. - М., "Высшая школа", 2002г. - 120с.
8.Цапенко М.П. Измерительные информационные системы. - М.: Энергоатом издат, 2005. - 440с.
9.Зюко А.Г., Кловский Д.Д., Назаров М.В., Финк Л.М. Теория передачи сигналов. М: Радио и связь, 2001 г. - 368 с.
ПРИЛОЖЕНИЕ А
ЛИСТИНГ ПРОГРАММЫ
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
USEFORM("Unit1.cpp", Form1);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
Application->CreateForm(__classid(TForm1), &Form1);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
return 0;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Chart.hpp>
#include <ExtCtrls.hpp>
#include <Series.hpp>
#include <TeEngine.hpp>
#include <TeeProcs.hpp>
#include <Dialogs.hpp>
#include <Menus.hpp>
#include <Grids.hpp>
#include <ActnCtrls.hpp>
#include <ActnMan.hpp>
#include <ActnMenus.hpp>
#include <ToolWin.hpp>
#include <ValEdit.hpp>
#include "PERFGRAP.h"
#include "trayicon.h"
#include <Buttons.hpp>
#include <ComCtrls.hpp>
#include <OleCtrls.hpp>
#include <VCFI.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:// IDE-managed Components
TGroupBox *GroupBox1;
TMainMenu *MainMenu1;
TMenuItem *N2;
TMenuItem *N3;
TMenuItem *N4;
TMenuItem *N6;
TOpenDialog *OpenDialog1;
TChart *Chart1;
TChart *Chart2;
TMenuItem *fdfd1;
TMenuItem *N7;
TMenuItem *N8;
TMenuItem *N13;
TMenuItem *N15;
TMenuItem *DFT1;
TMenuItem *N16;
TMenuItem *N17;
TBarSeries *Series1;
TLineSeries *Series2;
TFastLineSeries *LineSeries2;
TLineSeries *Series3;
TChart *Chart3;
TFastLineSeries *Series4;
TMenuItem *N30;
TMenuItem *N9;
TSaveDialog *SaveDialog1;
void __fastcall N6Click(TObject *Sender);
void __fastcall N3Click(TObject *Sender);
void __fastcall DFT1Click(TObject *Sender);
void __fastcall N20Click(TObject *Sender);
void __fastcall N23Click(TObject *Sender);
void __fastcall N22Click(TObject *Sender);
void __fastcall N16Click(TObject *Sender);
void __fastcall N17Click(TObject *Sender);
void __fastcall N30Click(TObject *Sender);
void __fastcall N13Click(TObject *Sender);
void __fastcall N9Click(TObject *Sender);
void __fastcall FormCreate(TObject *Sender);
void __fastcall N4Click(TObject *Sender);
private:// User declarations
public:// User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "math.h"
#include "stdlib.h"
#include "stdio.h"
#include "vector.h"
#include "complex.h"
#include "fstream.h"
//-------КОЭФФИЦИЕНТЫ ФИЛЬТРОВ------------
#include "fdacoefs1.h"
//----------------------------------------
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "PERFGRAP"
#pragma link "trayicon"
#pragma resource "*.dfm"
TForm1 *Form1;
using namespace std;
struct MetaData;
int FilterNumber;
template<class T>
double SSE(vector<T> v1, vector<__int16> v2);
__int32 ReadWaveFile(const char* szFilePath, __int16** s);
vector<double> DFT(const vector<__int16> &x, __int32 uSize);
vector<double> iDFT(const vector<double> &x, unsigned int uSize);
template<class T>
vector<double> normilize(vector<T> v);
template<class T>
vector<double> FFT(const vector<T> &x, __int32 uSize);
MetaData ReadMetaData(const char* szFilePath);
template<class T>
vector<__int32> Filtrate(vector<double> h, vector<T> y);
__int16 *s;
vector<__int16> samples;
vector<__int16> samples2;
vector<__int32> q1;
vector<__int32> q2;
__int32 SampleNumber;
// сигнал
struct RIFF
{
char ID[4]; // заголовок RIFF\0
__int32 Len; // длина файла без заголовка
};
struct WAVE
{
char ID[4]; // заголовок WAVE\0 4 байта
char Fmt[4]; // thunk fmt\0 4 байта
__int32 Len; // 4 байта
__int16 Format; // 2 байта
__int16 Channels; // число используемых каналов 2 байта
__int32 SamplesPerSecond; // 4 байта
__int32 AvgBytesPerSecond; // 4 байта
__int16 BlockAlign; // 2 байта
__int16 BitsPerSample; // 2 байта
};
// данные
struct DATA
{
char ID[4]; // заголовок data\0
__int32 Len;
};
struct MetaData
{
struct RIFF stRiff;
struct WAVE stWave;
struct DATA stData;
};
MetaData Meta;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N6Click(TObject *Sender)
{
Application->Terminate();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N3Click(TObject *Sender)
{
__int32 uSize;
AnsiString str;
char *szFileName;
__int32 freq;
if (OpenDialog1->Execute())
{
str = "";
str = OpenDialog1->FileName;
szFileName = str.c_str();
};
SampleNumber = ReadWaveFile(szFileName,&s);
samples.resize(SampleNumber/4);
Meta = ReadMetaData(szFileName);
freq = Meta.stWave.SamplesPerSecond;
register __int32 i;
Chart1->Series[0]->Clear();
Chart1->Series[1]->Clear();
for(i=0;i<SampleNumber/4;i++)
{
samples[i] = s[i<<1];
};
for(i=0;i<4000;i++)
{
Chart1->Series[1]->Add(samples[i],i,clRed);
};
DFT1->Enabled = true;
N16->Enabled = true;
N17->Enabled = true;
N13->Enabled = true;
N9->Enabled = true;
}
//---------------------------------------------------------------------------
MetaData ReadMetaData(const char* szFilePath)
{
FILE *file;
RIFF riff;
DATA data;
WAVE wave;
MetaData Meta;
file = fopen(szFilePath,"rb");
fseek(file,0,SEEK_SET);
fread(&riff,sizeof(RIFF),1,file);
fread(&wave,sizeof(WAVE),1,file);
fread(&data,sizeof(DATA),1,file);
Meta.stRiff = riff;
Meta.stWave = wave;
Meta.stData = data;
fclose(file);
return Meta;
};
__int32 ReadWaveFile(const char* szFilePath,__int16** s)
{
FILE *file;
size_t size,i;
RIFF riff;
DATA data;
WAVE wave;
file = fopen(szFilePath,"rb");
fseek(file,0,SEEK_SET);
size = fread(&riff,sizeof(RIFF),1,file);
size = fread(&wave,sizeof(WAVE),1,file);
size = fread(&data,sizeof(DATA),1,file);
*s = new __int16[data.Len];
size = fread((__int16*)*s,sizeof(__int16),data.Len,file);
fclose(file);
return size;
};
template<class T>
vector<double> FFT(const vector<T> &x, __int32 uSize)
{
vector<double> X;
unsigned int i,j,K,N;
double s,ds;
K = uSize;
X.resize(K);
// Разложим K на множители
do
{
i = 2;
while((K%i)!=0)
{
i++;
};
j = i;
K = K / j;
} while(K!=1);
for(i=2;i<K;i++)
{
};
return X;
};
// прямое преобразование в Фурье
vector<double> DFT(const vector<__int16> &x, __int32 uSize)
{
unsigned int i,k,N,n;
double s,ds;
N = uSize;
vector<double> X;
X.resize(N);
for(k=0;k<N;k++)
{
s = 0;
ds = 0;
for(n=0;n<N;n++)
{
ds = x[n] * cos(2*M_PI*n*k/(double)N);
s += ds;
};
X[k] = fabs(s)/(double)N;
};
return X;
};
// обратное преобразование
vector<double> iDFT(const vector<double> &x, unsigned int uSize)
{
unsigned int i,k,N,n;
double s,ds;
N = uSize;
vector<double> X;
X.resize(N);
for(n=0;n<N;n++)
{
s = 0;
ds = 0;
for(k=0;k<N;k++)
{
ds = x[n] * cos(2*M_PI*n*k/(double)N);
s += ds;
};
X[n] = s;
};
return X;
};
void __fastcall TForm1::DFT1Click(TObject *Sender)
{
unsigned int i;
double w;
UINT N;
N = 2000; // розрядность преобразователя
vector<double> spektr;
spektr.resize(N);
spektr = DFT(samples,N);
Chart2->Series[0]->Clear();
Chart2->Series[0]->RefreshSeries();
for(w=0,i=1;i<N/2;i++) // дискретизация сигнала разбиение сигнала на сегменты
{
w = (2./N) * i * (44100/2); // 44100- частота 2-кво каналов
Chart2->Series[0]->AddXY(w,20*log10(spektr[i]/1.));
};
}
//---------------------------------------------------------------------------
template<class T> // фильтр
vector<__int32> Filtrate(vector<double> h, vector<T> y)
{
vector<__int32> s;
unsigned int n,k,N,K;
long double sum,a,b;
K = y.size();
N = h.size();
s.resize(K);
for(k=0;k<K;k++)
{
sum = 0;
a = 0;
b = 0;
for(n=1;n<N;n++)
{
if(k<n)
{
//a += h[n] * y[0];
a += h[n] * y[k];
}
else
{
a = a + (h[n] * y[k-n]);
};
if(k+n>K)
{
b += h[n] * y[k];
}
else
{
b += h[n] * y[k+n];
};
};
s[k] = (__int32)(sum + a + b + h[0] * y[k]);
};
return s;
};
template<class T> // погрешность
double SSE(vector<T> v1, vector<__int16> v2)
{
unsigned int i,N;
double s;
N = v1.size();
s = 0;
for(i=0;i<N;i++)
{
s += std::pow((double)(v2[i]-v1[i]),2);
};
return s;
};
template<class T>
vector<double> normilize(vector<T> v) //
{
vector<double> s;
unsigned int i,N;
double ds;
N = v.size();
s.resize(N);
for(i=1,ds=0;i<N;i++)
{
//ds += v[i];
ds += v[i];
};
ds = v[0] + 2*ds;
if (ds)
{
for(i=0;i<N;i++)
{
s[i] = v[i]/ds;
};
};
return s;
};
void __fastcall TForm1::N20Click(TObject *Sender)
{
AnsiString str;
str = InputBox("Время отображения сигнала","Время отображения сигнала","");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N23Click(TObject *Sender)
{
Chart1->Series[1]->Clear();
Chart1->Series[0]->Clear();
for(int i=0;i<100;i++)
{
samples[i] = s[i<<1];
Chart1->Series[0]->Add(samples[i],i,clRed);
};
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N22Click(TObject *Sender)
{
Chart1->Series[0]->Clear();
Chart1->Series[1]->Clear();
for(int i=0;i<100;i++)
{
samples[i] = s[i<<1];
Chart1->Series[1]->Add(samples[i],i,clRed);
};
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N16Click(TObject *Sender)
{
double w;
unsigned int i;
FilterNumber = 1;
vector<double> h(BL1),h2(BL1);
q1.resize(SampleNumber/4);
for(i=0;i<BL1;i++)
{
h[i] = B1[i];
};
h2 = normilize(h);
q1 = Filtrate(h2,samples);
Chart3->Series[0]->Clear();
for(i=0;i<4000;i++)
{
w = q1[i]-samples[i];
Chart1->Series[2]->Add(q1[i],i,clGreen);
Chart3->Series[0]->Add(w,i,clGreen);
};
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N17Click(TObject *Sender)
{
vector<__int32> q(SampleNumber/4);
double w;
FilterNumber = 2;
q2.resize(SampleNumber/4);
unsigned int i;
vector<double> h(701),h2(701);
for(i=0;i<701;i++)
{
h[i] = B2[i];
};
h2 = normilize(h);
q2 = Filtrate(h2,samples);
Chart3->Series[0]->Clear();
for(i=0;i<4000;i++)
{
w = q2[i]-samples[i];
Chart1->Series[2]->Add(q2[i],i,clGreen);
Chart3->Series[0]->Add(w,i,clGreen);
};
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N30Click(TObject *Sender)
{
samples.clear();
samples2.clear();
q1.clear();
q2.clear();
Form1->Chart1->Series[0]->Clear();
Form1->Chart1->Series[1]->Clear();
Form1->Chart1->Series[2]->Clear();
Form1->Chart2->Series[0]->Clear();
Form1->Chart3->Series[0]->Clear();
DFT1->Enabled = false;
N16->Enabled = false;
N17->Enabled = false;
N13->Enabled = false;
N9->Enabled = false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N13Click(TObject *Sender)
{
double sse;
char str[50];
if (FilterNumber==1)
{
sse = SSE(q1,samples);
}
else
{
sse = SSE(q2,samples);
};
sprintf(str,"Средняя квадратическая ошибка: %-10.4f",sse/(SampleNumber));
MessageBox(NULL,str,"MSE:",MB_OK);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
DFT1->Enabled = false;
N16->Enabled = false;
N17->Enabled = false;
N13->Enabled = false;
N9->Enabled = false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N4Click(TObject *Sender)
{
FILE* file;
__int16 *out;
__int8 buf;
AnsiString str;
char *szFileName;
__int32 freq,i;
if (SaveDialog1->Execute())
{
str = "";
str = SaveDialog1->FileName + ".wav";
szFileName = str.c_str();
file = fopen(szFileName,"wb");
fseek(file,0,SEEK_SET);
fwrite(&Meta.stRiff,1,sizeof(RIFF),file);
fwrite(&Meta.stWave,1,sizeof(WAVE),file);
fwrite(&Meta.stData,1,sizeof(DATA),file);
out = new __int16[SampleNumber/2];
if (FilterNumber==1)
{
for(i=0;i<SampleNumber/4;i++)
{
out[2*i] = q1[i];
};
for(i=0;i<SampleNumber/4;i++)
{
out[2*i+1] = q1[i];
};
}
else
{
for(i=0;i<SampleNumber/4;i++)
{
out[2*i] = q2[i];
};
for(i=0;i<SampleNumber/4;i++)
{
out[2*i+1] = q2[i];
};
};
size_t size;
__int8* w = new __int8[Meta.stData.Len];
for(i=0;i<Meta.stData.Len/8;i++)
{
w[2*i] = (__int8)out[i];
};
for(i=0;i<Meta.stData.Len/8;i++)
{
w[2*i+1] = (out[i]>>8);
};
size = fwrite((__int8*)w,sizeof(__int8),Meta.stData.Len,file);
delete[] out;
delete[] w;
fclose(file);
};
}
//---------------------------------------------------------------------------
/*
* Filter Coefficients (C Source) generated by the Filter Design and Analysis Tool
*
* Generated by MATLAB(R) 7.5 and the Signal Processing Toolbox 9.
*
* Generated on: 1-Dec-2012 21:24:38
*
*/
/*
* Discrete-Time FIR Filter (real)
* -------------------------------
* Filter Structure : Direct-Form FIR
* Filter Length : 1001
* Stable : Yes
* Linear Phase : Yes (Type 1)
*/
/* General type conversion for MATLAB generated C-code */
#include "tmwtypes.h"
/*
* Expected path to tmwtypes.h
* C:\Program Files\MATLAB\R2009b\extern\include\tmwtypes.h
*/
const int BL1 = 1117;
const real64_T B1[1117] = {
0.00006705 , 0.00001215 , 0.00001324 , 0.00001438 , 0.00001558 , 0.00001683 , 0.00001815 , 0.00001953 , 0.00002098 , 0.00002249 , 0.00002407 , 0.00002572 , 0.00002743 , 0.00002921 , 0.00003107 , 0.00003299 , 0.00003498 , 0.00003705 , 0.00003920 , 0.00004142 , 0.00004372 , 0.00004609 , 0.00004855 , 0.00005108 , 0.00005369 , 0.00005637 , 0.00005913 , 0.00006197 , 0.00006490 , 0.00006791 , 0.00007102 , 0.00007419 , 0.00007744 , 0.00008076 , 0.00008416 , 0.00008765 , 0.00009126 , 0.00009489 , 0.00009857 , 0.00010243 , 0.00010627 , 0.00011024 , 0.00011425 , 0.00011836 , 0.00012252 , 0.00012676 , 0.00013106 , 0.00013544 , 0.00013987 , 0.00014437 , 0.00014892 , 0.00015354 , 0.00015821 , 0.00016293 , 0.00016771 , 0.00017253 , 0.00017739 , 0.00018229 , 0.00018723 , 0.00019221 , 0.00019722 , 0.00020226 , 0.00020731 , 0.00021239 , 0.00021748 , 0.00022259 , 0.00022770 , 0.00023282 , 0.00023794 , 0.00024305 , 0.00024814 , 0.00025323 , 0.00025830 , 0.00026334 , 0.00026833 , 0.00027332 , 0.00027825 , 0.00028313 , 0.00028797 , 0.00029274 , 0.00029746 , 0.00030210 , 0.00030667 , 0.00031116 , 0.00031556 , 0.00031987 , 0.00032408 , 0.00032819 , 0.00033218 , 0.00033606 , 0.00033981 , 0.00034344 , 0.00034693 , 0.00035027 , 0.00035347 , 0.00035651 , 0.00035939 , 0.00036210 , 0.00036465 , 0.00036700 , 0.00036918 , 0.00037116 , 0.00037294 , 0.00037452 , 0.00037589 , 0.00037704 , 0.00037797 , 0.00037867 , 0.00037914 , 0.00037937 , 0.00037935 , 0.00037909 , 0.00037857 , 0.00037778 , 0.00037675 , 0.00037543 , 0.00037384 , 0.00037198 , 0.00036983 , 0.00036740 , 0.00036467 , 0.00036166 , 0.00035834 , 0.00035473 , 0.00035081 , 0.00034659 , 0.00034205 , 0.00033721 , 0.00033206 , 0.00032659 , 0.00032081 , 0.00031471 , 0.00030829 , 0.00030156 , 0.00029451 , 0.00028713 , 0.00027944 , 0.00027144 , 0.00026312 , 0.00025448 , 0.00024553 , 0.00023627 , 0.00022670 , 0.00021682 , 0.00020665 , 0.00019616 , 0.00018539 , 0.00017432 , 0.00016296 , 0.00015132 , 0.00013940 , 0.00012722 , 0.00011476 , 0.00010204 , 0.00008907 , 0.00007585 , 0.00006239 , 0.00004870 , 0.00003478 , 0.00002065 , 0.00000631 , -0.00000823 , -0.00002296 , -0.00003787 , -0.00005295 , -0.00006819 , -0.00008358 , -0.00009911 , -0.00011476 , -0.00013053 , -0.00014641 , -0.00016237 , -0.00017842 , -0.00019453 , -0.00021069 , -0.00022690 , -0.00024313 , -0.00025938 , -0.00027563 , -0.00029186 , -0.00030806 , -0.00032423 , -0.00034033 , -0.00035636 , -0.00037230 , -0.00038815 , -0.00040387 , -0.00041946 , -0.00043490 , -0.00045018 , -0.00046528 , -0.00048019 , -0.00049488 , -0.00050935 , -0.00052358 , -0.00053754 , -0.00055124 , -0.00056465 , -0.00057775 , -0.00059053 , -0.00060298 , -0.00061507 , -0.00062681 , -0.00063816 , -0.00064911 , -0.00065966 , -0.00066978 , -0.00067947 , -0.00068870 , -0.00069747 , -0.00070575 , -0.00071355 , -0.00072084 , -0.00072761 , -0.00073385 , -0.00073955 , -0.00074470 , -0.00074928 , -0.00075329 , -0.00075671 , -0.00075954 , -0.00076177 , -0.00076338 , -0.00076437 , -0.00076473 , -0.00076446 , -0.00076354 , -0.00076198 , -0.00075976 , -0.00075688 , -0.00075334 , -0.00074913 , -0.00074425 , -0.00073870 , -0.00073247 , -0.00072556 , -0.00071798 , -0.00070972 , -0.00070079 , -0.00069117 , -0.00068089 , -0.00066994 , -0.00065832 , -0.00064604 , -0.00063310 , -0.00061951 , -0.00060527 , -0.00059040 , -0.00057490 , -0.00055878 , -0.00054204 , -0.00052471 , -0.00050678 , -0.00048828 , -0.00046920 , -0.00044958 , -0.00042941 , -0.00040872 , -0.00038752 , -0.00036583 , -0.00034366 , -0.00032102 , -0.00029795 , -0.00027445 , -0.00025055 , -0.00022626 , -0.00020161 , -0.00017662 , -0.00015130 , -0.00012569 , -0.00009981 , -0.00007367 , -0.00004731 , -0.00002074 , 0.00000601 , 0.00003290 , 0.00005992 , 0.00008704 , 0.00011423 , 0.00014147 , 0.00016872 , 0.00019596 , 0.00022317 , 0.00025030 , 0.00027733 , 0.00030424 , 0.00033099 , 0.00035755 , 0.00038390 , 0.00041000 , 0.00043582 , 0.00046134 , 0.00048652 , 0.00051133 , 0.00053574 , 0.00055973 , 0.00058326 , 0.00060629 , 0.00062881 , 0.00065079 , 0.00067218 , 0.00069296 , 0.00071311 , 0.00073260 , 0.00075139 , 0.00076946 , 0.00078678 , 0.00080332 , 0.00081906 , 0.00083397 , 0.00084803 , 0.00086120 , 0.00087347 , 0.00088481 , 0.00089520 , 0.00090461 , 0.00091303 , 0.00092043 , 0.00092679 , 0.00093209 , 0.00093632 , 0.00093946 , 0.00094148 , 0.00094238 , 0.00094213 , 0.00094074 , 0.00093817 , 0.00093442 , 0.00092949 , 0.00092335 , 0.00091601 , 0.00090745 , 0.00089766 , 0.00088665 , 0.00087441 , 0.00086094 , 0.00084623 , 0.00083028 , 0.00081311 , 0.00079470 , 0.00077506 , 0.00075420 , 0.00073213 , 0.00070885 , 0.00068436 , 0.00065869 , 0.00063184 , 0.00060383 , 0.00057467 , 0.00054438 , 0.00051297 , 0.00048046 , 0.00044688 , 0.00041224 , 0.00037657 , 0.00033988 , 0.00030222 , 0.00026360 , 0.00022404 , 0.00018359 , 0.00014227 , 0.00010012 , 0.00005716 , 0.00001343 , -0.00003103 , -0.00007618 , -0.00012199 , -0.00016842 , -0.00021543 , -0.00026298 , -0.00031101 , -0.00035950 , -0.00040839 , -0.00045764 , -0.00050719 , -0.00055702 , -0.00060705 , -0.00065725 , -0.00070757 , -0.00075795 , -0.00080833 , -0.00085868 , -0.00090893 , -0.00095903 , -0.00100892 , -0.00105856 , -0.00110787 , -0.00115682 , -0.00120533 , -0.00125336 , -0.00130084 , -0.00134772 , -0.00139394 , -0.00143944 , -0.00148417 , -0.00152805 , -0.00157105 , -0.00161309 , -0.00165412 , -0.00169408 , -0.00173291 , -0.00177055 , -0.00180696 , -0.00184206 , -0.00187580 , -0.00190813 , -0.00193899 , -0.00196833 , -0.00199609 , -0.00202221 , -0.00204664 , -0.00206933 , -0.00209024 , -0.00210929 , -0.00212646 , -0.00214168 , -0.00215492 , -0.00216611 , -0.00217523 , -0.00218221 , -0.00218703 , -0.00218964 , -0.00218999 , -0.00218805 , -0.00218378 , -0.00217714 , -0.00216810 , -0.00215662 , -0.00214268 , -0.00212624 , -0.00210728 , -0.00208576 , -0.00206167 , -0.00203498 , -0.00200567 , -0.00197371 , -0.00193910 , -0.00190182 , -0.00186184 , -0.00181917 , -0.00177379 , -0.00172569 , -0.00167487 , -0.00162132 , -0.00156505 , -0.00150605 , -0.00144433 , -0.00137988 , -0.00131273 , -0.00124287 , -0.00117033 , -0.00109510 , -0.00101722 , -0.00093669 , -0.00085354 , -0.00076778 , -0.00067945 , -0.00058857 , -0.00049517 , -0.00039928 , -0.00030093 , -0.00020016 , -0.00009701 , 0.00000849 , 0.00011629 , 0.00022635 , 0.00033862 , 0.00045306 , 0.00056962 , 0.00068824 , 0.00080887 , 0.00093146 , 0.00105594 , 0.00118226 , 0.00131036 , 0.00144018 , 0.00157165 , 0.00170470 , 0.00183926 , 0.00197528 , 0.00211267 , 0.00225136 , 0.00239128 , 0.00253236 , 0.00267451 , 0.00281767 , 0.00296174 , 0.00310666 , 0.00325234 , 0.00339869 , 0.00354563 , 0.00369309 , 0.00384097 , 0.00398918 , 0.00413765 , 0.00428628 , 0.00443498 , 0.00458367 , 0.00473226 , 0.00488066 , 0.00502878 , 0.00517652 , 0.00532380 , 0.00547053 , 0.00561661 , 0.00576196 , 0.00590649 , 0.00605011 , 0.00619271 , 0.00633423 , 0.00647456 , 0.00661362 , 0.00675132 , 0.00688757 , 0.00702228 , 0.00715537 , 0.00728676 , 0.00741635 , 0.00754406 , 0.00766982 , 0.00779353 , 0.00791512 , 0.00803451 , 0.00815163 , 0.00826638 , 0.00837870 , 0.00848852 , 0.00859576 , 0.00870034 , 0.00880221 , 0.00890130 , 0.00899753 , 0.00909084 , 0.00918117 , 0.00926847 , 0.00935266 , 0.00943371 , 0.00951154 , 0.00958611 , 0.00965737 , 0.00972527 , 0.00978977 , 0.00985082 , 0.00990838 , 0.00996241 , 0.01001287 , 0.01005974 , 0.01010297 , 0.01014255 , 0.01017843 , 0.01021061 , 0.01023905 , 0.01026374 , 0.01028465 , 0.01030179 , 0.01031513 , 0.01032466 , 0.01033038 , 0.01033229 , 0.01033038 , 0.01032466 , 0.01031513 , 0.01030179 , 0.01028465 , 0.01026374 , 0.01023905 , 0.01021061 , 0.01017843 , 0.01014255 , 0.01010297 , 0.01005974 , 0.01001287 , 0.00996241 , 0.00990838 , 0.00985082 , 0.00978977 , 0.00972527 , 0.00965737 , 0.00958611 , 0.00951154 , 0.00943371 , 0.00935266 , 0.00926847 , 0.00918117 , 0.00909084 , 0.00899753 , 0.00890130 , 0.00880221 , 0.00870034 , 0.00859576 , 0.00848852 , 0.00837870 , 0.00826638 , 0.00815163 , 0.00803451 , 0.00791512 , 0.00779353 , 0.00766982 , 0.00754406 , 0.00741635 , 0.00728676 , 0.00715537 , 0.00702228 , 0.00688757 , 0.00675132 , 0.00661362 , 0.00647456 , 0.00633423 , 0.00619271 , 0.00605011 , 0.00590649 , 0.00576196 , 0.00561661 , 0.00547053 , 0.00532380 , 0.00517652 , 0.00502878 , 0.00488066 , 0.00473226 , 0.00458367 , 0.00443498 , 0.00428628 , 0.00413765 , 0.00398918 , 0.00384097 , 0.00369309 , 0.00354563 , 0.00339869 , 0.00325234 , 0.00310666 , 0.00296174 , 0.00281767 , 0.00267451 , 0.00253236 , 0.00239128 , 0.00225136 , 0.00211267 , 0.00197528 , 0.00183926 , 0.00170470 , 0.00157165 , 0.00144018 , 0.00131036 , 0.00118226 , 0.00105594 , 0.00093146 , 0.00080887 , 0.00068824 , 0.00056962 , 0.00045306 , 0.00033862 , 0.00022635 , 0.00011629 , 0.00000849 , -0.00009701 , -0.00020016 , -0.00030093 , -0.00039928 , -0.00049517 , -0.00058857 , -0.00067945 , -0.00076778 , -0.00085354 , -0.00093669 , -0.00101722 , -0.00109510 , -0.00117033 , -0.00124287 , -0.00131273 , -0.00137988 , -0.00144433 , -0.00150605 , -0.00156505 , -0.00162132 , -0.00167487 , -0.00172569 , -0.00177379 , -0.00181917 , -0.00186184 , -0.00190182 , -0.00193910 , -0.00197371 , -0.00200567 , -0.00203498 , -0.00206167 , -0.00208576 , -0.00210728 , -0.00212624 , -0.00214268 , -0.00215662 , -0.00216810 , -0.00217714 , -0.00218378 , -0.00218805 , -0.00218999 , -0.00218964 , -0.00218703 , -0.00218221 , -0.00217523 , -0.00216611 , -0.00215492 , -0.00214168 , -0.00212646 , -0.00210929 , -0.00209024 , -0.00206933 , -0.00204664 , -0.00202221 , -0.00199609 , -0.00196833 , -0.00193899 , -0.00190813 , -0.00187580 , -0.00184206 , -0.00180696 , -0.00177055 , -0.00173291 , -0.00169408 , -0.00165412 , -0.00161309 , -0.00157105 , -0.00152805 , -0.00148417 , -0.00143944 , -0.00139394 , -0.00134772 , -0.00130084 , -0.00125336 , -0.00120533 , -0.00115682 , -0.00110787 , -0.00105856 , -0.00100892 , -0.00095903 , -0.00090893 , -0.00085868 , -0.00080833 , -0.00075795 , -0.00070757 , -0.00065725 , -0.00060705 , -0.00055702 , -0.00050719 , -0.00045764 , -0.00040839 , -0.00035950 , -0.00031101 , -0.00026298 , -0.00021543 , -0.00016842 , -0.00012199 , -0.00007618 , -0.00003103 , 0.00001343 , 0.00005716 , 0.00010012 , 0.00014227 , 0.00018359 , 0.00022404 , 0.00026360 , 0.00030222 , 0.00033988 , 0.00037657 , 0.00041224 , 0.00044688 , 0.00048046 , 0.00051297 , 0.00054438 , 0.00057467 , 0.00060383 , 0.00063184 , 0.00065869 , 0.00068436 , 0.00070885 , 0.00073213 , 0.00075420 , 0.00077506 , 0.00079470 , 0.00081311 , 0.00083028 , 0.00084623 , 0.00086094 , 0.00087441 , 0.00088665 , 0.00089766 , 0.00090745 , 0.00091601 , 0.00092335 , 0.00092949 , 0.00093442 , 0.00093817 , 0.00094074 , 0.00094213 , 0.00094238 , 0.00094148 , 0.00093946 , 0.00093632 , 0.00093209 , 0.00092679 , 0.00092043 , 0.00091303 , 0.00090461 , 0.00089520 , 0.00088481 , 0.00087347 , 0.00086120 , 0.00084803 , 0.00083397 , 0.00081906 , 0.00080332 , 0.00078678 , 0.00076946 , 0.00075139 , 0.00073260 , 0.00071311 , 0.00069296 , 0.00067218 , 0.00065079 , 0.00062881 , 0.00060629 , 0.00058326 , 0.00055973 , 0.00053574 , 0.00051133 , 0.00048652 , 0.00046134 , 0.00043582 , 0.00041000 , 0.00038390 , 0.00035755 , 0.00033099 , 0.00030424 , 0.00027733 , 0.00025030 , 0.00022317 , 0.00019596 , 0.00016872 , 0.00014147 , 0.00011423 , 0.00008704 , 0.00005992 , 0.00003290 , 0.00000601 , -0.00002074 , -0.00004731 , -0.00007367 , -0.00009981 , -0.00012569 , -0.00015130 , -0.00017662 , -0.00020161 , -0.00022626 , -0.00025055 , -0.00027445 , -0.00029795 , -0.00032102 , -0.00034366 , -0.00036583 , -0.00038752 , -0.00040872 , -0.00042941 , -0.00044958 , -0.00046920 , -0.00048828 , -0.00050678 , -0.00052471 , -0.00054204 , -0.00055878 , -0.00057490 , -0.00059040 , -0.00060527 , -0.00061951 , -0.00063310 , -0.00064604 , -0.00065832 , -0.00066994 , -0.00068089 , -0.00069117 , -0.00070079 , -0.00070972 , -0.00071798 , -0.00072556 , -0.00073247 , -0.00073870 , -0.00074425 , -0.00074913 , -0.00075334 , -0.00075688 , -0.00075976 , -0.00076198 , -0.00076354 , -0.00076446 , -0.00076473 , -0.00076437 , -0.00076338 , -0.00076177 , -0.00075954 , -0.00075671 , -0.00075329 , -0.00074928 , -0.00074470 , -0.00073955 , -0.00073385 , -0.00072761 , -0.00072084 , -0.00071355 , -0.00070575 , -0.00069747 , -0.00068870 , -0.00067947 , -0.00066978 , -0.00065966 , -0.00064911 , -0.00063816 , -0.00062681 , -0.00061507 , -0.00060298 , -0.00059053 , -0.00057775 , -0.00056465 , -0.00055124 , -0.00053754 , -0.00052358 , -0.00050935 , -0.00049488 , -0.00048019 , -0.00046528 , -0.00045018 , -0.00043490 , -0.00041946 , -0.00040387 , -0.00038815 , -0.00037230 , -0.00035636 , -0.00034033 , -0.00032423 , -0.00030806 , -0.00029186 , -0.00027563 , -0.00025938 , -0.00024313 , -0.00022690 , -0.00021069 , -0.00019453 , -0.00017842 , -0.00016237 , -0.00014641 , -0.00013053 , -0.00011476 , -0.00009911 , -0.00008358 , -0.00006819 , -0.00005295 , -0.00003787 , -0.00002296 , -0.00000823 , 0.00000631 , 0.00002065 , 0.00003478 , 0.00004870 , 0.00006239 , 0.00007585 , 0.00008907 , 0.00010204 , 0.00011476 , 0.00012722 , 0.00013940 , 0.00015132 , 0.00016296 , 0.00017432 , 0.00018539 , 0.00019616 , 0.00020665 , 0.00021682 , 0.00022670 , 0.00023627 , 0.00024553 , 0.00025448 , 0.00026312 , 0.00027144 , 0.00027944 , 0.00028713 , 0.00029451 , 0.00030156 , 0.00030829 , 0.00031471 , 0.00032081 , 0.00032659 , 0.00033206 , 0.00033721 , 0.00034205 , 0.00034659 , 0.00035081 , 0.00035473 , 0.00035834 , 0.00036166 , 0.00036467 , 0.00036740 , 0.00036983 , 0.00037198 , 0.00037384 , 0.00037543 , 0.00037675 , 0.00037778 , 0.00037857 , 0.00037909 , 0.00037935 , 0.00037937 , 0.00037914 , 0.00037867 , 0.00037797 , 0.00037704 , 0.00037589 , 0.00037452 , 0.00037294 , 0.00037116 , 0.00036918 , 0.00036700 , 0.00036465 , 0.00036210 , 0.00035939 , 0.00035651 , 0.00035347 , 0.00035027 , 0.00034693 , 0.00034344 , 0.00033981 , 0.00033606 , 0.00033218 , 0.00032819 , 0.00032408 , 0.00031987 , 0.00031556 , 0.00031116 , 0.00030667 , 0.00030210 , 0.00029746 , 0.00029274 , 0.00028797 , 0.00028313 , 0.00027825 , 0.00027332 , 0.00026833 , 0.00026334 , 0.00025830 , 0.00025323 , 0.00024814 , 0.00024305 , 0.00023794 , 0.00023282 , 0.00022770 , 0.00022259 , 0.00021748 , 0.00021239 , 0.00020731 , 0.00020226 , 0.00019722 , 0.00019221 , 0.00018723 , 0.00018229 , 0.00017739 , 0.00017253 , 0.00016771 , 0.00016293 , 0.00015821 , 0.00015354 , 0.00014892 , 0.00014437 , 0.00013987 , 0.00013544 , 0.00013106 , 0.00012676 , 0.00012252 , 0.00011836 , 0.00011425 , 0.00011024 , 0.00010627 , 0.00010243 , 0.00009857 , 0.00009489 , 0.00009126 , 0.00008765 , 0.00008416 , 0.00008076 , 0.00007744 , 0.00007419 , 0.00007102 , 0.00006791 , 0.00006490 , 0.00006197 , 0.00005913 , 0.00005637 , 0.00005369 , 0.00005108 , 0.00004855 , 0.00004609 , 0.00004372 , 0.00004142 , 0.00003920 , 0.00003705 , 0.00003498 , 0.00003299 , 0.00003107 , 0.00002921 , 0.00002743 , 0.00002572 , 0.00002407 , 0.00002249 , 0.00002098 , 0.00001953 , 0.00001815 , 0.00001683 , 0.00001558 , 0.00001438 , 0.00001324 , 0.00001215 , 0.00006705 ,
Подобные документы
Понятие сигнала, его взаимосвязь с информационным сообщением. Дискретизация, квантование и кодирование как основные операции, необходимые для преобразования любого аналогового сигнала в цифровую форму, сферы их применения и основные преимущества.
контрольная работа [30,8 K], добавлен 03.06.2009Понятие дискретизации сигнала: преобразование непрерывной функции в дискретную. Квантование (обработка сигналов) и его основные виды. Оцифровка сигнала и уровень его квантования. Пространства сигналов и их примеры. Непрерывная и дискретная информация.
реферат [239,5 K], добавлен 24.11.2010Выбор частоты дискретизации широкополосного аналогового цифрового сигнала, расчёт период дискретизации. Определение зависимости защищенности сигнала от уровня гармоничного колебания амплитуды. Операции неравномерного квантования и кодирования сигнала.
курсовая работа [2,0 M], добавлен 18.07.2014Применение аналого-цифровых преобразователей (АЦП) для преобразования непрерывных сигналов в дискретные. Осуществление преобразования цифрового сигнала в аналоговый с помощью цифроаналоговых преобразователей (ЦАП). Анализ принципов работы АЦП и ЦАП.
лабораторная работа [264,7 K], добавлен 27.01.2013Расчёт объёма звукового файла и порядка фильтра Баттерворта как основа для приложений обработки сигналов. Спектр входного сигнала и его частота. Расчет порядка фильтра и дискретная функция передач. Амплитудная модуляция и детектирование сигнала.
курсовая работа [1,6 M], добавлен 07.05.2012Импульсно-кодовая модуляция - метод цифрового представления. Преобразование аналогового сигнала в цифровой, операции: дискретизация по времени, квантование полученной совокупности отсчетов, замена квантованных значений сигнала последовательностью чисел.
реферат [210,9 K], добавлен 09.11.2010Расчет коэффициентов фильтра с помощью Matlab. Фазово-частотная характеристика фильтра. Синтезирование входного сигнала в виде аддитивной смеси гармонического сигнала с шумом. Нерукурсивный цифровой фильтр, отличительная особенность и выходной сигнал.
контрольная работа [4,6 M], добавлен 08.11.2012Преобразование непрерывной функции в дискретную. Квантование сигнала по уровню. Методы преобразования непрерывной величины в код. Виды, статистические и динамические параметры аналого-цифровых преобразователей. Функциональные схемы интегральных АЦП.
курсовая работа [605,9 K], добавлен 11.05.2016Расчет спектра и энергетических характеристик сигнала. Определение интервалов дискретизации и квантования сигнала. Расчет разрядности кода. Исследование характеристик кодового и модулированного сигнала. Расчет вероятности ошибки в канале с помехами.
курсовая работа [751,9 K], добавлен 07.02.2013Процесс преобразования аналогового сигнала в цифровой. Шаг дискретизации, его взаимосвязь с формой восстановленного сигнала. Сущность теоремы Котельникова. Процесс компандирования, его стандарты. Системы передачи информации с импульсно-кодовой модуляцией.
презентация [190,4 K], добавлен 28.01.2015