PDA

Просмотр полной версии : Помогите сделать КИХ фильтр на СИ!



Николай89
18.11.2008, 12:39
Респект всем программерам! Помогите на СИ сделать КИХ фильтр третьего порядка, я только начинаю учиться говорить по СИ и не очень понимаю... :(
Обещаю дальше все сам делать :rolleyes:

Naeel Maqsudov
19.11.2008, 12:04
Мало кто в обычной жизни имеет дело с КИХ фильтрами.
Современное програмирование уж очент прикладное: базы данных, автоматизация документооборота и т.п.
Никто не отвечает, ибо лень разыскивать инфу и вникать в эти фильтры. Вы бы дали ссылку какую-нибудь. (Вот тут кто-то из студентов всего-то навсего ряд фибоначчи вычислял, и то дал ссылку на :) википедию)

Николай89
20.11.2008, 18:10
Как я понимаю эту проблему,мне нужно сперва задать какой-то генератор случайных чисел,затем написать ких(конечная импульсная характеристика) фильтр,который будет делать что то с начальным набором чисел в зависимости от того какие мы укажем коэффициенты фильтра(т.е. будет это фнч или фвч)раз фильтр 3го порядка значит есть три задержки.

x(n) a0 y(n)
-------------------- l>-----+-------------
......l........................... /ll
......l......................... /./.l
задержка.......a1....././../
......l---------------l>/../../
......l......................../../
задержка.......a2..../../
......l---------------l>.../
......l......................../
задержка........a3.../
......l---------------l>

(точки типа пробел,надеюсь хоть кто-то поймет =))
вот примерная его схема

a0,а1,а2,а3 коэффициенты.
+ сумматор
задержка - на один отсчет

x(n) входная последовательность
y(n) выходная последовательность

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


вот инфа про фильтр - Цифровая фильтрация является одним из наиболее мощных инструментальных средств ЦОС. Цифровые фильтры широко используются в телекоммуникациях, в приложениях адаптивной фильтрации, таких как подавление эха в модемах, подавление шума и распознавание речи. Существует два основных типа цифровых фильтров: фильтры с конечной импульсной характеристикой (КИХ) и фильтры с бесконечной импульсной характеристикой (БИХ). Как следует из терминологии, эта классификация относится к импульсным характеристикам фильтров.

somewhere
21.11.2008, 16:43
Попробуйте посмотрите здесь
http://forum.developing.ru/showthread.php?t=12361

Т.к. это КИХ-фильтр, то получается что он применяется для конечного числа отсчетов, в вашем случае их 4. Если задержка по времени, указанная вами, постоянна и присутствует сумматор, то скорее всего это фильтр скользящего среднего, при котором вдоль отсчетов движется окно. Для этого окна из 4 отсчетов расчитывается значение коэффициента, как их среднее. Это будет результатом работы фильтра в момент времени. Потом окно сдвигается на один отсчет и получаем новое значение. Wavelet-фильтрация, так же как и FFT-фильтрация так же можно считать фильтром КИХ, только правила преобразования отсчетов гораздо сложнее.
А вообще есть хорошая закономерность, которая довольно точно отражает реальность: "Проблемы людей - задача для математиков, решение математиков - задача для физиков, решение физиков - задача для программистов, решения программистов - проблемы для людей" ))))

Николай89
21.11.2008, 17:57
спасибо,я видел это ссылку,но думал что это что-то иное...может конечно и то чот мне нужно =) если будут у кого еще какие идеи жду =)

Николай89
22.11.2008, 14:15
седне поговорил с преподом,все оказалось намного проще:cool:,нужно задать два массива ,сперва задаем генерацию чисел (количество чисел зависит от порядка фильтра,для третьего порядка надо 4 числа) и коэффициенты и потом просто перемножить числа(соответствующие для каждой задержки) и коэффициенты и посчитать их сумму.