Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: нерекурсивный Цифровой ФНЧ с КИХ
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
coolibin
Реализовал нерекурсивный цифровой ФНЧ,сначала всё показалось работающим, а вот потом заметил закономерность - чем ниже частота, тем сложнее её отфильтровать. Есть какие нибудь оптимизации которые позволили бы, например, отфильтровать 7 Гц от 5 Гц, если это вообще реально. Если это не реально сделать с помощью нерекурсивного ФНЧ, тогда подскажите как это можно сделать с помощью других фильтров.
Самурай
Цитата(coolibin @ Aug 3 2007, 13:24) *
Реализовал нерекурсивный цифровой ФНЧ,сначала всё показалось работающим, а вот потом заметил закономерность - чем ниже частота, тем сложнее её отфильтровать. Есть какие нибудь оптимизации которые позволили бы, например, отфильтровать 7 Гц от 5 Гц, если это вообще реально. Если это не реально сделать с помощью нерекурсивного ФНЧ, тогда подскажите как это можно сделать с помощью других фильтров.


Не совсем понятна фраза "чем ниже частота, тем сложнее её отфильтровать", особенно применительно к ФНЧsmile.gif. Наверно подразумевалось, что чем более узкополосен фильтр, т.е. чем меньше частота среза этого ФНЧ, тем хуже отфильтровываются высокочастотные составляющие? Если это так, то тогда один совет - увеличивать порядок фильтраsmile.gif. Тогда и 7Гц от 5Гц легко отфильтруются. Правда, порядок КИХ фильтра при этом может оказатся слишком большимsmile.gif. В этом случае может оказаться выгоднее использовать БИХ фильтры.
А вообще, есть масса замечательных тулов для расчета фильтров. Вот MatLab например. Он Вам и посчитает все сам и графики все нарисует и учтет эффекты округления и разрядности чисел. Да и порядок фильтра сам подберет под Ваши требованияsmile.gif.
-=ВН=-
Цитата(coolibin @ Aug 3 2007, 13:24) *
Реализовал нерекурсивный цифровой ФНЧ,сначала всё показалось работающим, а вот потом заметил закономерность - чем ниже частота, тем сложнее её отфильтровать. Есть какие нибудь оптимизации которые позволили бы, например, отфильтровать 7 Гц от 5 Гц, если это вообще реально. Если это не реально сделать с помощью нерекурсивного ФНЧ, тогда подскажите как это можно сделать с помощью других фильтров.

Неправильная закономерность у Вас какая-то. Или Вы ее выразили неправильно.
Реально отфильтровать. Но на будущее, в цифровых фильтрах важны относительные частоты, отнесенные к частоте дискретизации. Сами по себе Ваши 5 и 7 Гц ровным счетом ничего не говорят.
coolibin
TO САМУРАЙ
Цитата
Не совсем понятна фраза "чем ниже частота, тем сложнее её отфильтровать", особенно применительно к ФНЧ. Наверно подразумевалось, что чем более узкополосен фильтр, т.е. чем меньше частота среза этого ФНЧ, тем хуже отфильтровываются высокочастотные составляющие?

Да, наверное ты прав, я неправильно выразился

Цитата
В этом случае может оказаться выгоднее использовать БИХ фильтры

А в цифровом виде они реализуются? Если да, дайте что нить почитать, плиз...

Цитата
А вообще, есть масса замечательных тулов для расчета фильтров. Вот MatLab например. Он Вам и посчитает все сам и графики все нарисует и учтет эффекты округления и разрядности чисел. Да и порядок фильтра сам подберет под Ваши требования

Увы мне надо свою функцию написать
Самурай
Цитата(coolibin @ Aug 4 2007, 12:13) *
А в цифровом виде они реализуются? Если да, дайте что нить почитать, плиз...


Реализуются. А почитать как всегда: Рабинер с Гоулдом "Теория и применение цифровой обработки сигналов". Их есть в сетиsmile.gif. Ну и все что найдете по ключевым словам: БИХ, IIR, разностные уравнения,...

А вообще-то, хоть сказали бы нам, что за задача у Вас такаяsmile.gif

И вот тут тоже не все ясно:

Цитата
Увы мне надо свою функцию написать


Про какую ф-ю идет речь? Ф-я расчета/синтеза фильтра по заданным критериям?
EvgenyNik
Отделить 5Гц от 7Гц не сложнее, чем 500Гц от 700Гц, но при условии, что частоты дискретизации отличаются тоже в 100 раз.
Если же частота дисретизации 1000Гц, то вполне логично, что Вам не хватает порядка для "распознания" и отделения столь малых частот, т.к. образно говоря, окно наблюдения для них будет слишком велико.
coolibin
TO Самурай

Цитата
А почитать как всегда: Рабинер с Гоулдом "Теория и применение цифровой обработки сигналов"

Заумная слишком книженция

Цитата
А вообще-то, хоть сказали бы нам, что за задача у Вас такая


Задача построить т. н. контурную карту, смысл которой заключается в разбиении диапазона на октавы, а октавы в свою очередь на 3 полосы(треть октавная фильтрация), потом с помощью полосового фильтра находим каждую полосу и взависимоти от амплитуды назначаем цвет. На частотах более 500 Гц всё чики пуки а вот ниже оставляет желать лучшего. Фильтр нерекурсивный(КИХ), без применения окон, примерно 150 порядка. Ставишь большый порядок - тормозит. Частота дискредитации постоянная(14 мкс).

Цитата
Про какую ф-ю идет речь? Ф-я расчета/синтеза фильтра по заданным критериям?


Функция расчета коэфф. фильтра и свертка с сигналом


TO Евгений Николаев
Цитата
Отделить 5Гц от 7Гц не сложнее, чем 500Гц от 700Гц, но при условии, что частоты дискретизации отличаются тоже в 100 раз.
Если же частота дисретизации 1000Гц, то вполне логично, что Вам не хватает порядка для "распознания" и отделения столь малых частот, т.к. образно говоря, окно наблюдения для них будет слишком велико

Очень интересно и вполне возможно
anton
14 мкс этож 71кгц при вашем порядке разрешение 470гц а для отличия 5 и 7гц потребуется порядок на сотку больший.

как выход у вас в системе вроде имеются нч фильтры вот и используйте их для децимации перед более низкочастотными фильтрами.
coolibin
TO anton

470??? откуда вы взяли это число?

... для децимации ...??? Это ещё что такое?
-=ВН=-
Цитата(coolibin @ Aug 9 2007, 10:31) *
Заумная слишком книженция

Да, в "мурзилке" намного проще все.

Цитата(coolibin @ Aug 10 2007, 15:19) *
... для децимации ...??? Это ещё что такое?

Это у древних римлян такая мода была. Усекали главу каждому десятому солдату подразделения. Если подразделение провинилось. В результате означенной процедуры главы солдат торчали над их плечевыми поясами уже не так часто, чем до процедуры. На 10 плечевых поясов приходилось всего 9 голов.
А потом римлян загнобили вАравары. Или варвАры. Они не были так образованы, как римляне. Поэтому тупо заменили наполненное глубоким смыслом слово "децимация" на совершенно бессмысленное "прореживание" (prorezhition).
Ужасные Вы вопросы задаете.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.