Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как расчитать коэффициенты КИХ-фильтра?
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Вопросы системного уровня проектирования
maxics
Появилась необходимость использования КИХ-фильтра в ПЛИС. Опыта расчета коэффициентов нет. Подскажите как и где лучше просчитать коэффициенты?
Задача: "частота 10.08 МГц, цифровой фильтр должен обеспечить полосу пропускания >8.2 МГц". Фильтр должен обеспечивать неравномерность в полосе пропускания не более 0.5-1 дБ, уровень подавления > 110дБ, иметь линейную фазовую характеристику.

Посоветовали Matlab -> Simulink -> DSP - >Digital Filter Design, но куда подставлять свои значения понять не могу. Буду рад любой помощи!
Oldring
Цитата(maxics @ Jul 10 2010, 18:28) *
Задача: "частота 10.08 МГц, цифровой фильтр должен обеспечить полосу пропускания >8.2 МГц".


Частота отсчетов 10.08 МГц?
Выкиньте фильтр вообще и не мучайтесь biggrin.gif
maxics
Цитата(Oldring @ Jul 11 2010, 16:55) *
Частота отсчетов 10.08 МГц?
Выкиньте фильтр вообще и не мучайтесь biggrin.gif

Прошу прощения, у меня нет опыта расчета фильтров. Не могли бы вы пояснить, в чем проблема с этими параметрами?
V_G
Народ сюда ничего не пишет, потому что ругаться не хочет. Как можно делать проект с цифровой обработкой сигналов, не зная основ?
Oldring
Цитата(vadimuzzz @ Jul 12 2010, 11:51) *


Добрые авторы в Википедии не упоминули, что в их обозначениях речь идет про угловую частоту.
Наверное, думают, что впервые читающие про теорему Котельникова догадаются по обозначениям. biggrin.gif

Цитата(V_G @ Jul 12 2010, 13:23) *
Народ сюда ничего не пишет, потому что ругаться не хочет.


Действительно, зачем ругаться? Нужно помочь студенту.
Полностью удовлетворяющий условиям задачи FIR фильтр имеет вектор коэффициентов [1]. biggrin.gif
vadimuzzz
Цитата(Oldring @ Jul 12 2010, 16:35) *
Добрые авторы в Википедии не упоминули, что в их обозначениях речь идет про угловую частоту.
Наверное, думают, что впервые читающие про теорему Котельникова догадаются по обозначениям. biggrin.gif

Там есть отсылка на исходную работу: «Любую функцию f(t), состоящую из частот от 0 до fc, можно непрерывно передавать с любой точностью при помощи чисел, следующих друг за другом через \tfrac{1}{2f_c} секунд» smile.gif я думал, что топикстартер увидит непонятные буквы и захочет посмотреть учебник.
dysan
Цитата(Oldring @ Jul 11 2010, 16:55) *
Частота отсчетов 10.08 МГц?
Выкиньте фильтр вообще и не мучайтесь biggrin.gif

Мне, как неспециалисту и полному профану в вопросах обработки сигналов, вдруг, стало непонятно, почему вы решили что частота 10.08МГц - это частота дискретизации сигнала? Про это же, вроде, нигде явно написано не было. А даже, если это так, разве нельзя оцифровать чистую синусоиду с частотой дискретизации ниже частоты этой синусоиды? В исходном вопросе ведь сказано только про полосу пропускания фильтра а не про полосу сигнала, который надо обрабатывать? Так почему тут надо, вдруг, ругаться(надеюсь, не матерными словами)?
И откуда вы, вдруг, решили, что "Полностью удовлетворяющий условиям задачи FIR фильтр имеет вектор коэффициентов [1]", не зная даже какова полоса входного сигнала и что он собой представляет? Мне, как неспециалисту в обработке сигналов очень хотелось бы узнать, как вы так быстро решили эту задачу? Или я просто чего-то недопонимаю?
Oldring
Цитата(dysan @ Jul 13 2010, 00:39) *
И откуда вы, вдруг, решили, что "Полностью удовлетворяющий условиям задачи FIR фильтр имеет вектор коэффициентов [1]"


Отвечу вам только на этот вопрос.
Смотрим на требования, озвученные в самом первом посте этой темы.
Полоса пропускания больше 8.2 мегагерц? Явно что не меньше.
Фильтр должен обеспечивать неравномерность в полосе пропускания не более 0.5-1 дБ? Обеспечивает, даже лучше.
Иметь линейную фазовую характеристику? Имеет.
Уровень подавления > 110дБ? Никто не сможет доказать, что это не так.

laughing.gif


С остальными своими вопросами, пожалуйста, разберитесь сами. Подумайте, для начала.
dysan
Цитата(Oldring @ Jul 13 2010, 11:32) *
Отвечу вам только на этот вопрос.
Смотрим на требования, озвученные в самом первом посте этой темы.
Полоса пропускания больше 8.2 мегагерц? Явно что не меньше.
Фильтр должен обеспечивать неравномерность в полосе пропускания не более 0.5-1 дБ? Обеспечивает, даже лучше.
Иметь линейную фазовую характеристику? Имеет.
Уровень подавления > 110дБ? Никто не сможет доказать, что это не так.

laughing.gif


С остальными своими вопросами, пожалуйста, разберитесь сами. Подумайте, для начала.


Не понимаю, как несведущий человек. Может, объясните? Я вижу, что вроде как человек хочет ФВЧ фильтр. А скопировать то, что написал в исходном сообщении как это принято выражаться - топикстартер, я и сам сумею.

С остальными вопросами я писал в оторванном от вопроса "топикстартера" контексте теоремы Котельникова. Насколько я ее понимаю, не всегда может соблюдаться соотношение, в котором верхняя частота спектра сигнала должна быть меньше частоты Найквиста, сигналы разные бывают.
Oldring
Цитата(dysan @ Jul 13 2010, 14:02) *
Я вижу, что вроде как человек хочет ФВЧ фильтр.


Вы лучше сначала попытайтесь придумать, какому именно явно написанному требованию человека противоречит фильтр [1]. У него, кстати, нет фразы "ФВЧ фильтр".
andrewkrot
Цитата(dysan @ Jul 13 2010, 08:39) *
А даже, если это так, разве нельзя оцифровать чистую синусоиду с частотой дискретизации ниже частоты этой синусоиды?

Оцифровать то можно, восстановить то что было будет проблематично...
V_G
Цитата(Oldring @ Jul 14 2010, 02:32) *
Уровень подавления > 110дБ? Никто не сможет доказать, что это не так.

Не факт. Цифровой усилитель или повторитель (раз коэффициентов 1 штука) с аналоговым антиалиасинговым фильтром вряд ли даст 110 дБ за счет только аналога.

Цитата(dysan)
Насколько я ее понимаю, не всегда может соблюдаться соотношение, в котором верхняя частота спектра сигнала должна быть меньше частоты Найквиста, сигналы разные бывают.

Правильно, важно, чтобы ширина спектра была меньше удвоенной частоты дискретизации. Просто в случае с субдискретизацией (поищите в Википедии статью по этому термину) надо четко знать, в какой зоне Найквиста ты находишься. Ну, и насколько я понимаю, субдискретизация чаще применяется для сноса на низкие частоты с помощью цифрового гетеродина (DDC), а потом уже решаются задачи фильтрации. Хотя возможно, и на ВЧ фильтрация возможна, но в Матлабе я такой крутой фичи не встречал. Он сразу дает по башке: частота дискретизации должна вдвое превышать любую из задаваемых частот фильтра. Или у меня Матлаб старый.

ЗЫ. На картинке у топикстартера приведена характеристика ФНЧ, а не ФВЧ.
Oldring
Цитата(V_G @ Jul 14 2010, 03:59) *
Не факт.


Факт. Попытайтесь сами доказать, что фильтр [1] сам по себе не обеспечивает подавление 110 dB в упомянутой человеком полосе подавления. laughing.gif
dysan
Цитата(Oldring @ Jul 13 2010, 12:54) *
Вы лучше сначала попытайтесь придумать, какому именно явно написанному требованию человека противоречит фильтр [1]. У него, кстати, нет фразы "ФВЧ фильтр".


А что есть "фильтр [1]"? И где у "топискстартера" есть упоминание о "фильтр [1]"? Может, подскажете? А заодно подскажите уж, "какому именно явно написанному требованию человека противоречит фильтр [1]"? А то мне сложно понять, как неспециалисту.


Цитата(andrewkrot @ Jul 13 2010, 14:54) *
Оцифровать то можно, восстановить то что было будет проблематично...

Вот тут в общих чертах об этом рассказывают.


Цитата(V_G @ Jul 13 2010, 19:59) *
Ну, и насколько я понимаю, субдискретизация чаще применяется для сноса на низкие частоты с помощью цифрового гетеродина (DDC), а потом уже решаются задачи фильтрации.

ЗЫ. На картинке у топикстартера приведена характеристика ФНЧ, а не ФВЧ.


Странно, мне показалось, что DDC - это чисто цифровое устройство а субдискретизация овеществляется в АЦП. На DDC вроде уже оцифрованный сигнал приходит и перенос спектра сигнала с более высокой промежутки на более низкую происходит классически за счет перемножения входного сигнала с гетеродином. Хотя, возможно, я и ошибаюсь.
А на картинке у "топикстартера" просто изображено исходное окно FilterDesigner, там еще ничего не вводилось. Оно такое всегда изначально, по умолчанию является миру. "Топикстартер" просто не знает что и куда надо запихивать, чтобы в этом окне стало изображаться то, что ему нужно. Об этом он, "топикстартер" и вопрошает.
V_G
Цитата(dysan @ Jul 17 2010, 09:48) *
А что есть "фильтр [1]"? И где у "топискстартера" есть упоминание о "фильтр [1]"?

КИХ-фильтр с 1 коэффициентом - это не фильтр, это повторитель или усилитель или инвертор в зависимости от величины и знака коэффициента
Цитата
Странно, мне показалось, что DDC - это чисто цифровое устройство а субдискретизация овеществляется в АЦП. На DDC вроде уже оцифрованный сигнал приходит и перенос спектра сигнала с более высокой промежутки на более низкую происходит классически за счет перемножения входного сигнала с гетеродином. Хотя, возможно, я и ошибаюсь.

Верно. Перед DDC - дискретизация (в том числе субдискретизация), на DDC снос в ПЧ, далее - децимация, фильтрация. В типовом случае. Возможны варианты.
Oldring
Цитата(dysan @ Jul 17 2010, 02:48) *
А что есть "фильтр [1]"? И где у "топискстартера" есть упоминание о "фильтр [1]"? Может, подскажете? А заодно подскажите уж, "какому именно явно написанному требованию человека противоречит фильтр [1]"? А то мне сложно понять, как неспециалисту.


На первый вопрос - подскажу легко. Фильтр [1] - это фильтр с вектором коэффициентов, состоящим из одного коэффициента, равного 1. На второй ваш вопрос я ответить не могу.

Цитата(V_G @ Jul 17 2010, 03:55) *
КИХ-фильтр с 1 коэффициентом - это не фильтр, это повторитель или усилитель или инвертор в зависимости от величины и знака коэффициента


Тем не менее я не помню, чтобы в определении FIR было требование "длиной более 1". Да и Матлаб не ругается wink.gif
V_G
Цитата(Oldring @ Jul 17 2010, 17:40) *
Да и Матлаб не ругается wink.gif

Это какой версии, суперпоследние, что ли? У меня 6 ... 6.5 не любят число коэффициентов меньше 4.
Ну, и про КИХ. 1 коэффициент - это КИХ, но это не фильтр. Фильтр фильтрует, т.е. что-то пропускает лучше, что-то хуже, а что-то не пропускает. КИХ[1] пропускает все. Или задерживает на некоторое время, если ненулевой коэффициент имеет ненулевой индекс.
Oldring
Цитата(V_G @ Jul 17 2010, 17:33) *
Это какой версии, суперпоследние, что ли? У меня 6 ... 6.5 не любят число коэффициентов меньше 4.
Ну, и про КИХ. 1 коэффициент - это КИХ, но это не фильтр. Фильтр фильтрует, т.е. что-то пропускает лучше, что-то хуже, а что-то не пропускает. КИХ[1] пропускает все. Или задерживает на некоторое время, если ненулевой коэффициент имеет ненулевой индекс.



Попробуйте команду filter(1,1,ones(100,1))

Вы, значит, про всепропускающие фильтры ранее не слышали? wink.gif
Фантазеры... laughing.gif
dysan
Вообщем, товарищ "топикстартер", прям и не знаю, чем вам помочь. Люди чего-то вообще обленились на ответы - все шуточки, да прибауточки. Советуют зачем-то фильтры с одним коэффициентом, вместо 65. Как неспециалист неспециалисту могу посоветовать тупо понажимать все кнопки и галки, пока на картинке не появятся нужные АЧХ, ФЧХ и реализуемое количество отсчетов импульсной характеристики фильтра(думаю, будет что-нибудь в районе 64/65 отсчетов для 110Дб подавления с какой-нибудь весовой функцией типа окна Ханнинга, хотя - могу и ошибаться). А вообще, можете попробовать готовые корки типа того же FIRCompiler для Альтеровского Квартуса, все попроще и ближе к телу будет.
blackfin
Цитата(dysan @ Jul 19 2010, 17:31) *
110Дб подавления с какой-нибудь весовой функцией типа окна Ханнинга,..

Хэмминга (или Ханна?), это вряд ли, а вот Кайзера или Equiripple в fdatool - легко..
dysan
Цитата(blackfin @ Jul 19 2010, 18:14) *
Хэмминга (или Ханна?), это вряд ли, а вот Кайзера или Equiripple в fdatool - легко..

Нет, вроде, в Альтеровом FIRCompiler был именно Hanning(ну, Хэннинг тогда уж). А вообще-то вы, скорее всего, правы, господина Хэннинга будет маловато. Тогда действительно - fdatool, в FIRCompiler что-то вроде как мало окон было, если мне память не изменяет.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.