Как сделать фнч в матлабе

Обновлено: 03.07.2024

Есть ли способ в matlab создать фильтр нижних частот, я знаю, что могу использовать функцию фильтра, но не знаю, как ее использовать, мне дали следующую формулу для моего фильтра нижних частот H (z) = 1 (1-z^-4)^2 / 16 (1 - z^-1)^2 с частотой среза 20 Гц

2 ответа

Я ищу фильтр нижних частот 3 дБ с частотой среза 12 Гц. Я знаю, что Matlab имеет эту функцию fdesign.lowpass , и это должно быть возможно быть 3dB с F3db ( источник / дополнительный ), но я еще не совсем уверен, как их реализовать, то есть: какие функции я должен включать, а какие нет. Меня.

Я занимаюсь обработкой звука. Мне удалось загрузить несколько аудиофайлов в MATLAB, воспроизвести их, смешать и синтезировать сигналы. Теперь, однако, я хочу извлечь базу, похожую на эквалайзер или фильтр нижних частот в программе редактирования звука. Я знаю, что MATLAB имеет много фильтров и.

Функция filter позволяет применить фильтр к вектору. Вам все равно нужно указать коэффициенты фильтра. Если вы посмотрите документацию по фильтру , вы увидите, что вам нужно указать два вектора b и a , элементы которых являются коэффициентами z в нисходящей степени, где z-переменная частотной области в z-преобразовании. Поскольку у вас есть выражение для вашего фильтра, заданное в виде z-преобразования, коэффициенты легко найти. Во-первых, давайте запишем числитель вашего фильтра:

Таким образом, вектор b равен b = (1/16)*[1 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 1] . Аналогично, вектор a равен a = [1 -2 1] . Таким образом, теперь вы можете отфильтровать вектор данных x , чтобы получить результат y , просто выполнив y = filter(b,a,x); .

Сказав все это, H(z), который вы указали выше, определенно не является фильтром низких частот. Это больше похоже на какой-то странный каскад гребенчатого фильтра с самим собой.

Если вы хотите создать свой собственный фильтр и предполагаете, что у вас есть набор инструментов для обработки сигналов, самое простое, что можно сделать, - это создать фильтр, используя функцию Matlab fir1 :

который затем можно использовать в функции filter :

Вам нужно будет выбрать N самостоятельно. Как правило, большие значения N делают фильтры лучше, где лучше = отклоняет больше частот выше 20 Гц. Если ваше значение N начинает становиться настолько большим, что вызывает странное поведение (ошибки вычислений, медленные реализации, неприемлемые переходные процессы запуска/завершения в результирующих данных), вы можете рассмотреть более сложную конструкцию фильтра. Документация Mathworks содержит обзор различных методов проектирования цифровых фильтров.

Формула, которую вы дали: H(z) = 1 (1 - z^-4)^2 / 16 (1 - z^-1)^2-это Z-преобразование фильтра. Это рациональная функция, что означает, что ваш фильтр является рекурсивным (IIR) фильтром. Matlab имеет функцию с именем filter(b,a,X) . b-коэффициенты числителя с убывающей степенью z, i.E. в вашем случае: (1*z^-0 + 0*z^-1 + 0*z^-2 + 0*z^-3 + 0*z^-4)^2, вы можете использовать conv() для квадрата количества:

и коэффициенты знаменателя равны:

Затем вы вызываете фильтр y = filter(b,a,x) , где x -ваши входные данные.

Вы также можете проверить частотную характеристику вашего фильтра с помощью freqz(b,a)

Надеюсь, это помогло.

Я разработал плату, которая сэмплирует аудиовход с помощью 16-битного DAC на частоте 48 кГц. Он хранит данные в виде 16-битных целых чисел со знаком. Я также реализовал 16-битный ADC на плате, и я могу успешно передавать звук через плату. Я хотел бы разработать фильтр нижних частот с.

У меня есть вопрос о моем фильтре нижних частот. Я хочу интерполировать и апсэмплировать сигнал однако когда я использую свой фильтр нижних частот он только частично интерполирует образцы: Код моего фильтра выглядит так: function Hd = lpf5mhz3 %LPF5MHZ3 Returns a discrete-time filter object. %.

Похожие вопросы:

У меня есть фильтр нижних частот, описываемый следующей передаточной функцией: h[n] = (w_c/Pi) * sinc( n * w_c / Pi ), где w_c-частота среза Я должен преобразовать этот фильтр нижних частот в.

Я новичок в использовании matlab и обработке сигналов в целом и не могу понять, как реализовать фильтр нижних частот. У меня есть этот цифровой сигнал, который является вектором, и я хотел бы.

Я полный новичок в MATLAB и анализе сигналов, поэтому я действительно не понимаю математику Фурье, стоящую за фильтрацией сигналов. Я взял свой Ipod Touch и использовал приложение, которое.

Я ищу фильтр нижних частот 3 дБ с частотой среза 12 Гц. Я знаю, что Matlab имеет эту функцию fdesign.lowpass , и это должно быть возможно быть 3dB с F3db ( источник / дополнительный ), но я еще не.

Я занимаюсь обработкой звука. Мне удалось загрузить несколько аудиофайлов в MATLAB, воспроизвести их, смешать и синтезировать сигналы. Теперь, однако, я хочу извлечь базу, похожую на эквалайзер или.

Я разработал плату, которая сэмплирует аудиовход с помощью 16-битного DAC на частоте 48 кГц. Он хранит данные в виде 16-битных целых чисел со знаком. Я также реализовал 16-битный ADC на плате, и я.

У меня есть вопрос о моем фильтре нижних частот. Я хочу интерполировать и апсэмплировать сигнал однако когда я использую свой фильтр нижних частот он только частично интерполирует образцы: Код моего.

Я записываю сигнал (проводимость кожи) во времени, то есть у меня есть временной ряд. К сожалению, на сигнал влияет движение. В руководстве пользователя я теперь прочитал следующее: К данным следует.

У меня есть следующая непрерывная по времени система: входной сигнал ->блок abs (во временной области) - >идеальный блок фильтра нижних частот (в частотной области) - >выходной сигнал. В simulink я.

У меня есть изображение, где я добавляю Гауссов шум. Мне нужно использовать идеальный фильтр нижних частот, чтобы удалить шум, но я действительно не вижу никаких примеров в официальной документации.

В курсовом проекте произведен синтез КИХ и БИХ фильтра нижних частот, с заданными параметрами. Расчет фильтра и построение основных характеристик проводились при помощи стандартных средств MatLab , проверка полученных данных – при помощи специализированных функций MatLab ( FDA Tool ).

Требования к фильтрам могут формулироваться как во временной, так и в частотной областях, что определяется назначением фильтра и областью его описания.

Во временной области требования могут задаваться к импульсной или переходной характеристике при широких допусках к частотным свойствам фильтра.

В частотной области требования могут предъявляться:

· только к АЧХ или к характеристике ослабления (затухания) без каких-либо ограничений на ФЧХ;

· только к ФЧХ, когда важно сохранение фазовых, а потому и временных соотношений между гармоническими составляющими принимаемого сигнала; это – фазовые корректоры;

· одновременно и к АЧХ, и к ФЧХ; например, возможен синтез КИХ-фильтров с заданной АЧХ и линейной ФЧХ.

Рассмотрим задание требований к частотно-избирательным ЦФ. На рис. 1 представлена идеальная АЧХ ФНЧ и, вследствие физической невозможности ее реализации, аппроксимация при заранее определяемых допусках, зависящих от ряда практических ограничений. Эти ограничения связаны, прежде всего, с назначением синтезируемого фильтра. Все ограничения и допуски составляют требования, предъявляемые к фильтру.

Требования к фильтрам включают в себя:

1. Задание частоты дискретизации [Гц] и типа избирательности (НЧ, ВЧ и т. д.).

2. задание требований к АЧХ или к характеристике затухания , представляющей собой логарифмическую АЧХ.

При этом необходимо помнить, что:

· задание требований начинается с установки всех граничных частот фильтра только в основной полосе частот ;

· требования не задаются в переходных полосах избирательных фильтров;

· требования формулируются в виде допустимых отклонений от нормированной АЧХ и отображаются на диаграмме допусков;

· размерность выражается в абсолютных величинах, размерность выражается в дБ; связь между и характеристикой затухания определяется по формуле .

3. Выбор метода аппроксимации АЧХ (или ).

Диаграмма идеальной АЧХ ФНЧ и диаграмма допусков к отклонениям АЧХ в полосах пропускания и задерживания представлены на рис. 1. При постановке задачи синтеза идеальную АЧХ будем обозначать .

Фильтр нижних частот (ФНЧ) имеет три частотных полосы (рис. 1): полосу пропускания (ПП), полосу задерживания (ПЗ), или ослабления, и переходную полосу.

Полоса пропускания (ПП) ограничивается частотой среза ; ширина полосы пропускания ; – максимально допустимое отклонение от 1; – допустимый уровень пульсаций в полосе пропускания.

Важным является то обстоятельство, что в соответствии с методом синтез КИХ-фильтров отклонение АЧХ от 1 (соответственно, от 0) задается симметрично , а для БИХ-фильтров отклонение задается только в одну сторону так, чтобы АЧХ не превышало единицы. Это означает, что для БИХ-фильтра, синтезируемого с теми же допусками, что и КИХ-фильтр, необходимо задавать в полосе пропускания допустимое отклонение АЧХ (причина, по которой в полосе пропускания требования к БИХ-фильтрам задаются не превышающими единицы, состоит в их синтезе по аналоговым фильтрам-прототипам).

Полоса задерживания (ослабления) (ПЗ) лежит в пределах от граничной частоты до половины частоты дискретизации ; ее ширина ; – максимально допустимое отклонение АЧХ от 0; – минимально необходимое затухание в полосе задерживания.

Переходная полоса располагается между полосами пропускания и задерживания; ее ширина ; поскольку в этой полосе требования не задаются, удовлетворительным окажется любое решение, если оно соответствует требованиям в полосах пропускания и задерживания.

Поскольку отсчеты импульсной характеристики КИХ-фильтра одновременно являются и коэффициентами его передаточной функции, задача синтеза сводится к получению импульсной характеристики фильтра.

Методика синтеза включает в себя [1]:

1. Задание требований к фильтру (приведены в задании на курсовое проектирование [1]):

Грубо говоря, частотный спектр человеческого голоса можно условно разделить на три диапазона, согласно входящим в них звукам - взрывным, гласным и шипящим. Взрывные звуки лежат в диапазоне от 125 Гц до 250 Гц и "отвечают" за разборчивость речи, так как именно они позволяют нам определить, кто именно говорит. На долю гласных, которые лежат в диапазоне от 350 Гц до 2000 Гц, приходится максимальное количество голосовой энергии. Шипящие в диапазоне от 1500 Гц до 4000 Гц несут сравнительно мало энергии, однако от них зависит четкость и разборчивость речи.

Частотный диапазон от 63 Гц до 500 Гц содержит около 60% всей энергии голоса, однако на его долю приходится лишь 5% информационного наполнения речи. Диапазон от 500 Гц до 1 кГц содержит около 35% информации, а остальные 60% информационного наполнения приходятся на долю "шипящего" диапазона от 1 кГц до 8 кГц, который несет лишь 5% энергии.

Уменьшая уровень сигнала в области низких частот и "поднимая" диапазон 1..5 кГц, мы можем повысить субъективно воспринимаемую четкость и разборчивость речи или вокала. Подъем частотной характеристики в области 100..250 Гц делает вокал гулким и "грудным". Вырезание участка 150..500 Гц приводит к тому, что голос начинает звучать "как в трубе", открыто и пусто. "Провалы" отдельных участков АЧХ в диапазоне 500..1000 Гц делают голос жестче, а подъемы в области 1 кГц и 3 кГц придают вокалу металлический "носовой" оттенок. Вырезание участков в диапазоне 2..5 кГц делает голос вялым, безжизненным и неразборчивым, а усиление частот 4..10 кГц приводит к появлению яркости и "искристости.

Таким образом, для разработке звукового синтезатора потребуется разделить звуковой сигнал по частотным диапазонам, а затем изменять процент содержащейся в суммарном файле.

Сигнал будет разделен по средствам полосовых фильтров.

1. Разработка полосовых фильтров для синтезатора звука.

1.1 Графический эквалайзер

Графический эквалайзер - это просто набор полосовых фильтров с фиксированными срединными частотами и переменным коэффициентом усиления, которым можно управлять при помощи ползунка. В качестве регуляторов принято использовать именно ползунки, так как положение их ручек представляет собой некое подобие создаваемой эквалайзером АЧХ. Именно поэтому такие эквалайзеры принято называть "графическими" - пользователь как бы рисует ползунками необходимую ему кривую АЧХ.

Графические эквалайзеры можно встретить в бытовых системах Hi-Fi, однако основные области их применения - это звукозапись, звуковоспроизведение и акустическая коррекция помещений.


Графический эквалайзер - это набор полосовых фильтров, которые полностью изолируют друг от друга определенные полосы частот. АЧХ идеального полосового фильтра показана на рисунке 1. Для того, чтобы иметь возможность управлять частотной характеристикой во всем звуковом спектре, такие фильтры необходимо соединить параллельно (рисунок 2). На вход всех фильтров подается один и тот же сигнал, и задача каждого фильтра состоит лишь в том, чтобы усилить или ослабить "свой" участок спектра в соответствии с положением регулятора коэффициента усиления (ползунка).


Рисунок 2 Параллельное соединение фильтров.

Срединные частоты полосовых фильтров графического эквалайзера обычно "равномерно" распределены по октавным интервалам. Существуют эквалайзеры с "шагом" в одну треть или одну шестую октавы. Каждая октава соответствует степени двойки, поэтому шаг в октаву со срединной частоты 100 Гц будет выглядеть следующим образом: 200 Гц. 400 Гц. 800 Гц и т.д. Для шага в 1/3 октавы коэффициент умножения будет равен 2 в степени 1/3, что примерно равно 1.26. При первой срединной частоте в 100 Гц следующие частоты будут равны 126 Гц, 159 Гц, 200 Гц и т.д. Предпочтительные для использования в эквалайзерах частоты фильтров описаны в специальном стандарте ISO.

1.2 Проектирование полосовых фильтров.

Проектирование цифрового фильтра сводится к определению коэффициентов , и определении структуры фильтра.

Спроектируем семь полосовых фильтров с серединными частотами .

Полосовой фильтр – совокупность двух фильтров ФНЧ (фильтр нижних частот) и ФВЧ (фильтр верхних частот).

Идеальная АЧХ полосового фильтра приведена на рисунке 3.


Рисунок 3. АЧХ полосового фильтра.

1. 2.1 ФНЧ.

Для проектирования ФНЧ в пакете Matlab возможно два пути

Воспользоваться встроенным проектировщиком фильтров

Воспользоваться функциями Matlab

Пойдем по первому пути, воспользуемся Filter Design & Analys Tool.

Для ФНЧ частота среза ω 1 =300 Гц . Спроектируем рекурсивный фильтр Баттерворта. АЧХ фильтра рассчитывается по формуле (1)


(1)

где ω 0 =ω 1 =512 Гц

n – порядок фильтра.

От того какой порядок выбрать зависит не только крутизна среза фильтра, но и время вычислительного процесса и отклик на единичный импульс. Порядок фильтра – компромисс между скоростью вычислений и качеством фильтрации.

Пусть n=3. На рисунке 4 приведена АЧХ и ФЧХ фильтра Баттерворта 3 –го порядка.


Рисунок 4. АЧХ и ФЧХ.

На рисунке 5 приведен отклик на единичный импульс, как видно фильтр быстро успокаивается.


Рисунок 5. Реакция на единичный импульс.

Для того, чтобы фильтр был устойчивым необходимо, чтобы нули функций находились в единичной окружности. На рисунке 6 приведены нули полинома Баттерворта.


Рисунок 6. Нули и полюсы ФНЧ.

Проведем эксперимент с полученным фильтром. Для этого генерируем сигнал, состоящий из суммы синусов с частотами 200 Гц, 1000 Гц и 20000 Гц. Для имитации АЦП введен блок 1/z Схема и результат эксперимента приведена на рисунке 7. В схему включен постоянный множитель 120 для того, чтобы компенсировать потери амплитуды. (файл filter 300).


Рисунок 7. Схема и результат эксперимента.

Таким образом, получен ФНЧ, который действует согласно заявленным требованиям.

Если отфильтровать таким способом сигнал, то получим результат приведенный на рисунке 8.


Рисунок 8. Отфильтрованный сигнал.

1.2.2 ФВЧ.

Спроектируем ФВЧ с частотой среза 512 Гц Выберем рекурсивный фильтр 3 –го порядка на полиномах Баттерворта.

На рисунке 9 приведены АЧХ и ФЧХ фильтра.


Рисунок 9. АЧХ и ФЧХ ФВЧ.

2. Разработка программы для анализа звуковых файлов пакете Matlab.

Для изучения звуковых сигналов была разработана программа в среде Matlab. Интерфейс программы приведен на рисунке. Листинг программы находится в Приложении 1.


Рисунок 10. Интерфейс.

Интерфейс состоит из

Программа загружает звуковой файл формата wav. Программный пакет Matlab может работать со звуковыми файлами только в wav, с другими форматами Matlab не работает. Формат wav несжатый формат, поэтому размеры файлов сравнительно велики.

Далее программа определяет частоту дискретизации, количество бит на отсчет.

Вырезает массив заданной длины.

Формирует графическое изображение сигнала.

Отдает управление модели Simulink. Модели Simulink делит входящий сигнал по частотным диапазонам, для этого используются полосовые фильтры описанные выше. Модель приведена на рисунке.


Рисунок 11. Модели Simulink

Кнопка « Приложении 4. Программа перемешает прослушиваемый фрагмент назад по звуковому файлу. После чего запускает Модели Simulink, тем самым обновляя рабочую область.

Программа выбирает массив в зависимости от положения ползунка. Заменяет график сигнала графиком отфильтрованного сигнала. Воспроизводит звук после фильтра.

Заключение

В работе был спроектирован графический эквалайзер. Качество работы синтезатора зависит прежде всего от качества работы математических фильтров. В работе использовались рекурсивные фильтры 3 –го порядка на полиномах Баттерворта.

Поскольку формат wap не сжатый формат, то размеры звуковых файлов велики, т.е программе необходимо обработать файлы больших размеров. Поэтому были выбраны фильтры 3-го порядка при увеличении порядка фильтров качество звука улучшается, но время обсчета увеличивается.

Литература.

Под проектированием (или синтезом) цифрового фильтра понимается выбор таких наборов коэффициентов i> и i>, при которых характеристики получающегося фильтра удовлетворяют заданным требованиям. В MatLab имеется более двадцати функций синтеза дискретных фильтров. Кроме того, в пакете Signal Processing имеется программа FDATool (Filter Design and Analysis Tool), реализующая графический интерфейс для расчета фильтров и просмотра их характеристик.

В зависимости от способа реализации, фильтры разделяются на фильтры с конечной импульсной характеристикой (КИХ-фильтры) и фильтры с бесконечной импульсной характеристикой (БИХ-фильтры).


В общем виде, любой фильтр описывается своей передаточной характеристикой (отношением отклика фильтра на входной сигнал):
, где

H(z) – передаточная характеристика фильтра, Y(z) – выходной сигнал фильтра, X(z) – входной сигнал фильтра. Подставив в данное выражение значения коэффициентов фильтра, получим следующую форму записи передаточной характеристики:
– для БИХ-фильтров:

– для КИХ-фильтров (передаточная характеристика совпадает с импульсной характеристикой фильтра):
, где

m и n – количество коэффициентов фильтра (максимальное из этих значений определяет порядок фильтра), z -n – элемент задержки сигнала на n отсчетов, bm – коэффициенты фильтра, связанные с отсчетами входного сигнала, an – коэффициенты фильтра, связанные с отсчетами выходного сигнала.

Для расчета коэффициентов БИХ-фильтра в MatLab используются следующие встроенные функции:
– butter(n, w0, type) – расчет фильтров Баттерворта;
- cheby1(n, Rp, w0, type) – расчет фильтров Чебышева первого рода;
- cheby2(n, Rs, w0, type) – расчет фильтров Чебышева второго рода;
- ellip(n, Rp, Rs, w0, type) – расчет эллиптических фильтров;
- bessel(n, w0) – расчет фильтров Бесселя (только ФНЧ).

Данные функции позволяют рассчитать коэффициенты i> и i>. Параметры вызова данных функций следующие: n – порядок фильтра, Rp – уровень пульсаций АЧХ в полосе пропускания (в децибелах), Rs – уровень пульсаций АЧХ в полосе подавления (в децибелах), w0 – частота среза фильтра (для полосовых и режекторных фильтров задается двухмерным вектором [w1 w2]), type – тип проектируемого фильтра (ФНЧ, ФВЧ, ПФ или РФ).

Для расчета коэффициентов КИХ-фильтра в MatLab используется встроенная функция fir1(n, Wn, ‘ftype’, ‘window’, ‘normalization’), где n – порядок фильтра, Wn – частота среза фильтра (для полосовых и режекторных фильтров задается двухмерным вектором [w1 w2]), ‘ftype’ – тип проектируемого фильтра (ФНЧ, ФВЧ, ПФ или РФ). Параметр ‘window’ задает используемое при синтезе окно. Это должен быть вектор-столбец, содержащий n+1 элементов. По умолчанию используется окно Хэмминга, рассчитываемое путем вызова функции hamming(n+1). Для вызова других окон используются функции:
– blackman – окно Блэкмена;
- kaiser – окно Кайзера;
- chebwin – окно Чебышева.

Строковый параметр ‘normalization’ управляет нормировкой (масштабированием) рассчитанной импульсной характеристики фильтра. По умолчанию используется значение ‘scale’, при котором импульсная характеристика нормируется так, чтобы обеспечить единичное значение (0 дБ) коэффициента передачи в центре полосы пропускания.

Амплитудно-частотная характеристика дискретного фильтра рассчитывается с помощью функции freqz(b, a). Фазо-частотная характеристика – с помощью функции angle(h).

Основная функция, реализующая дискретную фильтрацию в MatLab, носит имя filter. В простейшем виде она имеет следующий синтаксис:
filter(b, a, x), где b – вектор коэффициентов нерекурсивной части фильтра (числителя функции передачи), a – вектор коэффициентов рекурсивной части фильтра (знаменателя функции передачи), x – входной сигнал.

Рассмотрим пример реализации полосового КИХ-фильтра с окном Хана. Частота дискретизации – 20 КГц, полоса пропускания фильтра – от 3 до 5 КГц, порядок фильтра – 20. Для заданных характеристик фильтра рассчитаем оконную функцию, коэффициенты фильтра, его импульсную и частотные характеристики. Программа расчета представлена ниже.

Fd=20e3; % частота дискретизации

W1=3e3/(0.5*Fd); %нижняя частота полосового фильтра 3КГц

W2=5e3/(0.5*Fd); %верхняя частота полосового фильтра 5КГц

f=0:10e3; %полоса частот до частоты Найквиста

n=20; %порядок фильтра

k=hann(n+1); %расчет окна Ханна

b=fir1(n, [W1 W2], k); %расчет коэффициентов фильтра

hi=impz(b, 1); %расчет импульсной характеристики

subplot(2, 1, 1); stem(hi); grid on %вывод ипм. хар-ки

subplot(2, 1, 2); plot(k); grid on %вывод окна

h =freqz(b, 1, f, Fd); %расчет АЧХ фильтра

plot(f, abs(h)) %вывод АЧХ

xlabel( ‘Frequency, Hz’ )

legend ( ‘Frequency responce’ )

tau_phase=unwrap(angle(h)); %расчет ФЧХ фильтра

plot(f, tau_phase) %вывод ФЧХ

ylabel( ‘Phase, rad’ )

xlabel( ‘Frequency, Hz’ )

legend ( ‘Phase responce’ )

Результаты расчета оконной функции и импульсной характеристики фильтра представлены на рисунке 1.


Рисунок 1. Импульсная характеристика и оконная функция фильтра.

Амплитудно-частотная характеристика фильтра представлена на рисунке 2.


Рисунок 2. Амплитудно-частотная характеристика фильтра.

Фазо-частотная характеристика фильтра представлена на рисунке 3.


Рисунок 3. Фазо-частотная характеристика фильтра.

ЗАДАНИЕ

2. Для созданного в примере фильтра сгенерируйте тестовый сигнал и проверьте работу фильтра (функция filter).

3. Самостоятельно рассчитайте и проверьте работу ФВЧ КИХ-фильтра с окном Хэмминга, с частотой среза 4 КГц. Постройте его импульсную и частотные характеристики.

4. С помощью команды fdatool откройте программу FDATool. Ознакомьтесь с ее возможностями. Спроектируйте с помощью данной программы режекторный БИХ-фильтр (параметры фильтра задайте самостоятельно).

Фильтр нижних частот Matlab с использованием fft

Фильтр нижних частот в области Фурье с использованием MATLAB

Я реализовал простой фильтр нижних частот в matlab, используя прямой и обратный fft. В принципе работает, но минимальное и максимальное значения отличаются от оригинала.

итоговое изображение выглядит так


Что я делаю не так? Если я нормализую оба данных, отфильтрованный сигнал выглядит правильным.

Просто чтобы напомнить себе о том, как MATLAB хранит частотный контент для Y = fft(y,N) :

  • Y(1) постоянное смещение
  • Y(2:N/2 + 1) это набор положительных частот
  • Y(N/2 + 2:end) это набор отрицательных частот . (обычно мы строим это осталось вертикальной оси)

Чтобы создать настоящий фильтр нижних частот, мы должны сохранить обе низкие положительные частоты а также низкий отрицательный частоты.

Вот пример этого с мультипликативным прямоугольным фильтром в частотной области, как вы это сделали:


Гауссовский фильтр имеет лучшие свойства фильтра нижних частот, потому что преобразование Фурье гауссова является гауссовым. Гауссовский параметр хорошо спадает до нуля, поэтому он не включает удаленных соседей во взвешенное среднее значение во время свертки. Вот пример с гауссовым фильтром, сохраняющим положительные и отрицательные частоты:

Читайте также: