|
1298 / 927 / 449
Регистрация: 21.10.2012
Сообщений: 2,604
|
|
Реализация ФНЧ29.03.2014, 23:39. Показов 20884. Ответов 20
Метки нет (Все метки)
Здравствуйте. Задача такая: есть массив данных (запись сигнала). В этом сигнале присутствуют 2 несущие, одна низкочастотная, другая высокочастотная. Необходимо оставить только низкочастотную. Нашел способ, которым можно это сделать - Преобразование Фурье входного сигнала -> преобразование Фурье коэффициентов КИХ-фильтра -> быстрая свертка КИХ-фильтра и сигнала -> обратное преобразование Фурье результатов свертки. Расчет коээфициентов КИХ-фильтра нашел следующий:
должно быть известно заранее частота среза - Fs частота дискретизации - Fd порядок фильтра - n вычисляем некоторые общие параметры(буквы условные) w = 2*pi*(Fs/Fd) q = w/pi сами коэффициенты, для нечетного порядка расчитываются по ф-ле А(к) = А(-k) = q*(sin(k*w)/(k*w)), где к = n/2 +/- 1, n/2 +/- 2, n/2 +/- ..., n/2 +/- n/2 где n/2, в данном случае есть ЦЕНТРАЛЬНЫЙ отсчет. Скажите, будет ли работать данный алгоритм? Может нужно что исправить? Или есть ещё более простой способ?
0
|
|
| 29.03.2014, 23:39 | |
|
Ответы с готовыми решениями:
20
Реализация ФНЧ Баттерворта Расчет коэффициентов ФНЧ
|
|
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
|
||
| 30.03.2014, 10:49 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 26.12.2012
Сообщений: 5
|
|
| 30.03.2014, 15:06 | |
|
Более простой способ - WinFilter08.zip. Выбираете тип фильтра и генерите С или VHDL код. Все.
0
|
|
|
1298 / 927 / 449
Регистрация: 21.10.2012
Сообщений: 2,604
|
||
| 30.03.2014, 16:34 [ТС] | ||
|
0
|
||
|
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
|
|
| 30.03.2014, 17:37 | |
|
Wn - как раз частота среза. Частота дискретизации тут не важна. Точнее она не используется, т.к. тут нормированная частота, то есть частоту среза задаете от 0 до 1, считая за 1 половину частоты дискретизации
0
|
|
|
1298 / 927 / 449
Регистрация: 21.10.2012
Сообщений: 2,604
|
||||||
| 30.03.2014, 20:00 [ТС] | ||||||
|
Попробовал ваш фильтр при демодуляции ОБП сигнала, что- то не так видно задаю, т.к. на выходе фильтра одни нули. (с Wn - разобрался, но теперь не понятно, что такое lengthFrameForEnvelope
)Ниже мой код для создания ОБП сигнала с верхней боковой полосой, и его демодуляция:
0
|
||||||
|
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
|
||||||||
| 30.03.2014, 20:41 | ||||||||
Сообщение было отмечено raxp как решение
Решение
2
|
||||||||
|
1298 / 927 / 449
Регистрация: 21.10.2012
Сообщений: 2,604
|
|
| 30.03.2014, 22:44 [ТС] | |
|
Спасибо, теперь стало понятнее
Остался последний вопрос: если судить по книжке, по которой я делал свой сигнал, там после демодуляции и отфильтровки сигнал получается такой же, как и тот, который я использовал для модуляции (s_M), только по амплитуде в 2 раза меньше. У меня же в коде, при сравнении значений s_M и result, такой зависимости нет.. В чем может быть проблема?
0
|
|
|
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
|
||
| 30.03.2014, 23:18 | ||
|
Вот ваш исходный сигнал: А вот результат после фильтрации: Если порядок фильтра увеличить до 40, ачх будет круче и результат будет такой:
2
|
||
|
1298 / 927 / 449
Регистрация: 21.10.2012
Сообщений: 2,604
|
|
| 01.04.2014, 15:23 [ТС] | |
|
Спасибо, за объяснение, теперь, действительно стало понятно
![]() Добавлено через 2 часа 7 минут И снова неприятность я думал, что порядок фильтра задается #define order 20, но при замене 20 на 40 получил практически тот же результат, что и у вас, но до замены порядка фильтра (когда вч колебания фильтруются не полностью)
0
|
|
|
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
|
|||||||||||
| 01.04.2014, 17:37 | |||||||||||
|
да верно, у меня вышла ошибочка. Вместо
2
|
|||||||||||
|
1298 / 927 / 449
Регистрация: 21.10.2012
Сообщений: 2,604
|
|
| 02.04.2014, 20:04 [ТС] | |
|
Спасибо большое
0
|
|
|
148 / 129 / 18
Регистрация: 29.04.2015
Сообщений: 626
|
|
| 02.05.2015, 15:08 | |
|
Реализация полосового фильтра Баттерворта 3 порядка:
ФНЧ-прототип: где Коэффициенты Пф находятся из уравнения, использующего матрицу z-преобразования: где Fo- центральная частота фильтра, Fs - частота среза ФНЧ-прототипа, FN - частота Найквиста. Т.е. кооэффициенты фильтра можно вычислять прямо в микроконтроллере и оперативно менять частоту/полосу фильтра! Добавлено через 1 час 13 минут Если нужен обычный ФНЧ, то расчёты существенно упрощаются: ФНЧ-прототип: Матрица z-преобразования ФНЧ Баттерворта 3 порядка:
0
|
|
|
|
|||
| 02.05.2015, 20:46 | |||
|
...Матлабом не пользуюсь.
А по поводу ресурсов, вы просчитывали, что мало для всех МК? Особенно в тиньке или меге, даже если использовать упрощенные способы из алгоритмических трюков Уоррена. Это вам не ARM с кучей памяти и готовой математикой.
0
|
|||
|
148 / 129 / 18
Регистрация: 29.04.2015
Сообщений: 626
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 04.05.2015, 11:22 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ПФ 4-го порядка.
Матрица z-преобразования: Обозначения, как в предыдущем посте, недостающие коэффициенты в статье http://www.dsplib.ru/content/f... terex.html Добавлено через 17 часов 5 минут Матрица z-преобразования для фильтра 15 порядка вот так выглядит:
Добавлено через 4 часа 46 минут Внимание! В матрице z-преобразования ПФ 3 порядка опечатка - изменить знак каждого элемета последней строки. В матрице z-преобразования ПФ 4 порядка опечатка - 2 столбец, строки 4 и 6: Значения
1
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 14.05.2015
Сообщений: 9
|
|
| 14.05.2015, 20:10 | |
|
Добрый человек, а можно к Вам с еще одним вопросом?
Почему когда Wn = 0.05 это ФНЧ, Wn = 0.5 ФВЧ, а при большинстве прочих выражений это полосной фильтр? И почему это работает, а то что написано у "Айфичер Э. - Цифровая обработка сигналов. Практический подход. 2-е издание. 2004" в методе взвешивания нет? Добавлено через 21 минуту Если быть точнее, мне нужно регулировать частоту среза и ширину полосы перехода. Может подскажите как это сделать или что я делаю не так, когда сворачиваю сигнал с фильтром?
0
|
|
|
148 / 129 / 18
Регистрация: 29.04.2015
Сообщений: 626
|
|
| 14.05.2015, 22:25 | |
|
Я если честно - вопроса не понял совсем
![]() В коэффициентах (для фильтра Баттерворта) очень легко переход ФНЧ-ФВЧ получить. Надо создать ФНЧ с частотой (1-Fs) ( в относительных частотах) и потом поменять знаки у нечётных коэффициентов. С полосовыми фильтрами - сложнее. Могу посоветовать ссылку на работы Костантинидеса. Приведите конкретный пример фильтра, чтобы я понял суть вопроса
1
|
|
|
0 / 0 / 0
Регистрация: 14.05.2015
Сообщений: 9
|
||||||
| 14.05.2015, 23:22 | ||||||
|
Я не про Баттерворта. Я про начала темы и код в ней. Там написан ФНЧ с заранее указанной частотой среза, порядком и прочим. Если хотите - посмотрите.
Что пытаюсь сделать я, генерировать частотные фильтры по типу(ФНЧ, ФВЧ, полосной, заграждающий) частоте среза и затуханию дБ в полосе. Книжка "Айфичер Э. - Цифровая обработка сигналов." говорит о методе взвешивания. Гласит он, смешать две таблицы(прилагаются) линейной сверткой, и будет вам счастье. Порядок фильтра предлагают брать нечетный, а коэффициенты симметричные. Вроде сказка, а не метод, а получается фигня.
Вот. А получается именно то, что описано выше. Меняешь Fс, и по частотам будто узким окном проходят. При одной это ФНЧ, при другой ФВЧ, а при всех остальных полосной. Но где он окажется, этот не задавленный фильтром участок частот, я не знаю. И вот или я не очень, или лыжи не едут. Ну и если уж пошла такая пьянка, может кто подскажет, как АЧХ такого фильтра посмотреть в матлабе можно?
0
|
||||||
|
0 / 0 / 0
Регистрация: 14.05.2015
Сообщений: 9
|
||||||
| 16.05.2015, 02:34 | ||||||
|
Задача решилась! Оставлю код, может кому поможет.
0
|
||||||
| 16.05.2015, 02:34 | |
|
Помогаю со студенческими работами здесь
20
ФНЧ при моделировании OFDM Через что лучше ДПФ или ФНЧ? Расчет порядка нормированного прототипа ФНЧ при расчете полосового фильтра ФНЧ ФНЧ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|