реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Цифровой полосовой фильтр, Реализация
e-tarasov
сообщение Jun 27 2007, 10:21
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 44
Регистрация: 30-05-06
Пользователь №: 17 578



Задача такова. Требуется реализовать цифровой полосовой фильтр на 2000Гц с полосой 10Гц и максимально высоким затуханием и что интересно нужна фаза сигнала (но про это потом). Проц не сигнальный процесс фильтрации необязательно непрерывный. Раньше ЦОС не занимался на считая простеньких ФНЧ 2-го порядка. Надыбал алгоритм БПФ. Алгоритм БПФ позволяет использовать целочисленную математику что хорошо и при этом выделяет фазу сигнала. Господа специалисты а может это то что мне надо. Если да то может быть тогда для одной частоты есть упрощение алгоритма.
Не подскажите заодно сколько отсчетов надо выбрать и какую частоту дискретизации. Плз. Фазу то я по любому думаю вытащу. Но с обычным фильтром траблы с непрерывной фильтрацией или с переходными процессами после подключения. Может кто уже нечто подобное реализовывал. Спасибо.
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Jun 27 2007, 11:47
Сообщение #2


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



...частота 2000 берем 4096 частоту дискретизации (например, главное не ниже Котельникова). Берем FFT на 2048 отсчетов. На Q подаем "0"-и. Получаем 2048 частотных отсчета. Ваш - 2000ный. Его условная ширина полосы 1 Hz, потому берите 11 отсчетов, будет полосовой фильтр. Значит, делаем ДПФ только для 1995…2005-го частотных отсчетов (на вход FDT все равно идет 2048 сэмплов). Вот Вам и фильтр (АЧХ которого определяется количеством точек преобразования - временем накопления и функцией окна) с возможностью узнать фазу...


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
Самурай
сообщение Jun 27 2007, 12:11
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 468
Регистрация: 4-03-05
Пользователь №: 3 066



Цитата(DRUID3 @ Jun 27 2007, 15:47) *
...частота 2000 берем 4096 частоту дискретизации (например, главное не ниже Котельникова). Берем FFT на 2048 отсчетов. На Q подаем "0"-и. Получаем 2048 частотных отсчета. Ваш - 2000ный. Его условная ширина полосы 1 Hz, потому берите 11 отсчетов, будет полосовой фильтр. Значит, делаем ДПФ только для 1995…2005-го частотных отсчетов (на вход FDT все равно идет 2048 сэмплов). Вот Вам и фильтр (АЧХ которого определяется количеством точек преобразования - временем накопления и функцией окна) с возможностью узнать фазу...


Не надо только забывать про антиалиасинговый фильтр, который должен резать все частоты больше 2048 Герц. Особенно с учетом первоначального требования "...максимально высоким затуханием...". А это может оказаться далеко не так просто, так как переходная зона у такого фильтра должна быть всего лишь 2048-2005 = 43Гц smile.gif.
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Jun 27 2007, 12:56
Сообщение #4


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(Самурай @ Jun 27 2007, 15:11) *
Не надо только забывать про антиалиасинговый фильтр, который должен резать все частоты больше 2048 Герц. Особенно с учетом первоначального требования "...максимально высоким затуханием...". А это может оказаться далеко не так просто, так как переходная зона у такого фильтра должна быть всего лишь 2048-2005 = 43Гц smile.gif.

Нет, я же совсем не против, я просто привел расчет "как следует мыслить". А уж автор топика пусть решит все на месте. smile.gif. Кстати забыл сказать, что ДПФ для такого узкого участка более эффективно чем БПФ с отбрасыванием ненужных частотных сэмплов. Потому его и применяем. Пишется оно исключительно просто если помнить определение преобразования Фурье и формулу комплексного умножения.


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
el34
сообщение Jun 27 2007, 13:30
Сообщение #5


инженер
****

Группа: Свой
Сообщений: 717
Регистрация: 4-03-05
Пользователь №: 3 064



DRUID3>Кстати забыл сказать, что ДПФ для такого узкого участка более эффективно чем БПФ с отбрасыванием ненужных частотных сэмплов. Потому его и применяем. Пишется оно исключительно просто если помнить определение преобразования Фурье и формулу комплексного умножения.

еще можно попробовать алгоритм Герцеля
Goertzel algorithm
(см гугл)


--------------------
........поужинали вяленой рыбой, кот лежал рядом, молчали.......
Go to the top of the page
 
+Quote Post
anton
сообщение Jun 27 2007, 14:43
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 622
Регистрация: 31-07-04
Пользователь №: 422



Цитата(Самурай @ Jun 27 2007, 16:11) *
Не надо только забывать про антиалиасинговый фильтр, который должен резать все частоты больше 2048 Герц. Особенно с учетом первоначального требования "...максимально высоким затуханием...". А это может оказаться далеко не так просто, так как переходная зона у такого фильтра должна быть всего лишь 2048-2005 = 43Гц smile.gif.


Фильтр должен быть аналоговый и резать частоты (для частоты семплирования 2000) выше 1000.
Затухания для БПФ реализуются окнами ханна чебышева и.т.д.
БПФ необходим тебе 256 или 512 (окна расширяют фильтр для ханна кажется 1.3 для других как правило больше)
Впринципе из НЧ полосовой можно получить комплексным гетеродинном.
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Jun 27 2007, 15:25
Сообщение #7


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(anton @ Jun 27 2007, 17:43) *
Фильтр должен быть аналоговый и резать частоты (для частоты семплирования 2000) выше 1000.
Затухания для БПФ реализуются окнами ханна чебышева и.т.д.
БПФ необходим тебе 256 или 512 (окна расширяют фильтр для ханна кажется 1.3 для других как правило больше)



Дааа...без психоделиков понять Ваш пост сложновато, но ведь LSD страшно отвлекает от работы галлюцинациями biggrin.gif .
Во-первых автору надо часто 2 kHz. зачем ему фильтр на 1 kHz?
Во-вторых ДПФ (а не БПФ) ему необходим как можно на большее число точек. Т.к. именно эти точки и задают добротность фильтра на основе ДПФ. А окно еще и потребует оверсэмпленга.


Цитата(anton @ Jun 27 2007, 17:43) *
Впринципе из НЧ полосовой можно получить комплексным гетеродинном.


А ето вообще нИасилил. Сместить 2 kHz комплексным гетеродином...куда??? Вниз, в максимум фликкер шума 07.gif ?


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
el34
сообщение Jun 27 2007, 18:24
Сообщение #8


инженер
****

Группа: Свой
Сообщений: 717
Регистрация: 4-03-05
Пользователь №: 3 064



DRUID3>А ето вообще нИасилил. Сместить 2 kHz комплексным гетеродином...куда??? Вниз, в максимум фликкер шума

так в цифрe....


--------------------
........поужинали вяленой рыбой, кот лежал рядом, молчали.......
Go to the top of the page
 
+Quote Post
e-tarasov
сообщение Jun 28 2007, 04:29
Сообщение #9


Участник
*

Группа: Свой
Сообщений: 44
Регистрация: 30-05-06
Пользователь №: 17 578



Спасибо за ответы. Насчет ДПФ. Не получится ли что добротность фильтра уменьшится из-за использования не целочисленной математики ведь ДПФ хорош в теории но на практике вопрос. Насчет ФНЧ я так понял частота среза должна быть не более половины частоты дискретизации это понятно. Вопрос с количеством отсчетов для меня пока неясен. Алгоритм Герцеля чем он хорош. Что такое окно ханна и оверсемпленг. И вопрос про затухание к примеру насколько сравнимо с обычным цифровым. Мне честно говоря непонятно потому что ранее ЦОС не занимался. Еще раз спасибо за ответы.
Go to the top of the page
 
+Quote Post
Alex11
сообщение Jun 28 2007, 06:27
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



И еще интересный вопрос к автору: "цифровой полосовой фильтр на 2000Гц с полосой 10Гц" - это фильтр с полосой от 1995 до 2005 Гц? А частота дискретизации при этом какая? Или 2000 Гц - частота дискретизации? Есть такая полезная программка Filter Solutions. Она позволяет помоделировать разные варианты фильтров, в том числе и цифровых, увидеть как зависит результат от точности счета, и в итоге может сгенерировать программку на С с реализацией фильтра.
Go to the top of the page
 
+Quote Post
e-tarasov
сообщение Jun 28 2007, 09:18
Сообщение #11


Участник
*

Группа: Свой
Сообщений: 44
Регистрация: 30-05-06
Пользователь №: 17 578



DRUID3 правильно пишет по теореме Котельникова *2 но надо с запасом Крякнутую Filter Solutions не нашел есть же mathlab. А вот по матлабу вопросик может ли он расчитывать и моделировать фильтр БПФ и как.
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Jun 28 2007, 10:46
Сообщение #12


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(e-tarasov @ Jun 28 2007, 07:29) *
Не получится ли что добротность фильтра уменьшится из-за использования не целочисленной математики ведь ДПФ хорош в теории но на практике вопрос.

biggrin.gif Нет, ДПФ хорош сам по себе и совершенно не имеет никакого отношения к целочисленной арифметике.
Цитата(e-tarasov @ Jun 28 2007, 07:29) *
Что такое окно ханна и оверсемпленг.

Окно - функция, на которую множат интервал накопления, это задает АЧХ каждого частотного отсчета. Если он вообще ни на что не умножен, то окно прямоугольное и АЧХ sinc(f).
Оверсемпленг это когда отсчетов берут в несколько раз (а лучше на несколько порядков) больше чем нужно по Котельникову. Делают это для
1) уменьшения влияния случайных помех.
2)уменьшения апертурой погрешности АЦП.
3)при работе не с прямоугольными окнами для исключения их влияния на сигнал.


Цитата(e-tarasov @ Jun 28 2007, 07:29) *
И вопрос про затухание к примеру насколько сравнимо с обычным цифровым.

Если честно, первый раз такое слышу biggrin.gif . Там нет никакого затухания, т.к. все можно домножить biggrin.gif , но есть шумы (включая дискретизацию или округление) ну и такие понятия как коэффициент передачи, например при умножениях двух сигналов в формате int это важно.


Цитата(e-tarasov @ Jun 28 2007, 12:18) *
DRUID3 правильно пишет по теореме Котельникова *2 но надо с запасом Крякнутую Filter Solutions не нашел есть же mathlab. А вот по матлабу вопросик может ли он расчитывать и моделировать фильтр БПФ и как.

Может, но я, например его не использую принципиально smile.gif . Это связано с моими специфическими убеждениями, но советовать всем поступать так же я просто не в праве. А Filter Solutions насколько я помню фильтров, указывающих фазу, не строит, или я туплю 07.gif ?

Цитата(e-tarasov @ Jun 28 2007, 07:29) *
Алгоритм Герцеля чем он хорош.

Кстати, алгоритм Герцеля в Вашем случае оптимален. Благодарите el34. Я почему-то о нем и не подумал, но ведь у Вас все условия, так сказать. Узкий участок (хоть он работает для любого, но даже на таком он даст фору ДПФ) спектра, и действительный сигнал на входе. Помимо меньших вычислительных затрат Герцель имеет еще одно серьезное преимущество - у него нет шага сетки частот, т.е. настройка производится плавно. Да и времени накопления нет - т.е. время вычисления "наличия" частоты ~ее периоду и просто суперовские свойства для параллельной организации вычислений (например PLIS). Кстати на WiKi есть исходник.


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
-=ВН=-
сообщение Jun 28 2007, 11:51
Сообщение #13


Местный
***

Группа: Новичок
Сообщений: 210
Регистрация: 3-11-06
Пользователь №: 21 936



Цитата(DRUID3 @ Jun 28 2007, 14:46) *
biggrin.gif Нет, ДПФ хорош сам по себе и совершенно не имеет никакого отношения к целочисленной арифметике.

Окно - функция, на которую множат интервал накопления, это задает АЧХ каждого частотного отсчета. Если он вообще ни на что не умножен, то окно прямоугольное и АЧХ sinc(f).
Оверсемпленг это когда отсчетов берут в несколько раз (а лучше на несколько порядков) больше чем нужно по Котельникову. Делают это для
1) уменьшения влияния случайных помех.
2)уменьшения апертурой погрешности АЦП.
3)при работе не с прямоугольными окнами для исключения их влияния на сигнал.
Если честно, первый раз такое слышу biggrin.gif . Там нет никакого затухания, т.к. все можно домножить biggrin.gif , но есть шумы (включая дискретизацию или округление) ну и такие понятия как коэффициент передачи, например при умножениях двух сигналов в формате int это важно.
Может, но я, например его не использую принципиально smile.gif . Это связано с моими специфическими убеждениями, но советовать всем поступать так же я просто не в праве. А Filter Solutions насколько я помню фильтров, указывающих фазу, не строит, или я туплю 07.gif ?
Кстати, алгоритм Герцеля в Вашем случае оптимален. Благодарите el34. Я почему-то о нем и не подумал, но ведь у Вас все условия, так сказать. Узкий участок (хоть он работает для любого, но даже на таком он даст фору ДПФ) спектра, и действительный сигнал на входе. Помимо меньших вычислительных затрат Герцель имеет еще одно серьезное преимущество - у него нет шага сетки частот, т.е. настройка производится плавно. Да и времени накопления нет - т.е. время вычисления "наличия" частоты ~ее периоду и просто суперовские свойства для параллельной организации вычислений (например PLIS). Кстати на WiKi есть исходник.

Жуткая смесь smile.gif
"Оверсампленг" - это не увеличение числа отсчетов, это повышение ч-ты дискретизации.
Алгоритм Герцеля - алгоритм вычисления ДПФ, со всеми вытекающими. Преимущества - экономия двойная по сравнению с лобовым вычислением. Других преимуществ нет.
Вообще вопрос был о фильтрации. Если автору нужен отфильтрованный сигнал, то ДПФ и даже с окном его не спасут. smile.gif
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Jun 28 2007, 12:10
Сообщение #14


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(-=ВН=- @ Jun 28 2007, 14:51) *
Жуткая смесь smile.gif
"Оверсампленг" - это не увеличение числа отсчетов, это повышение ч-ты дискретизации.

Да, именно это я и хотел сказать... Прошу прощения у тех, кто не может или ленится выхватывать из контекста... blush.gif

Цитата(-=ВН=- @ Jun 28 2007, 14:51) *
Алгоритм Герцеля - алгоритм вычисления ДПФ, со всеми вытекающими. Преимущества - экономия двойная по сравнению с лобовым вычислением. Других преимуществ нет.

Что Вы говорите... biggrin.gif Хотя, может в Вашей реализации это так и есть ... lol.gif


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
-=ВН=-
сообщение Jun 28 2007, 12:30
Сообщение #15


Местный
***

Группа: Новичок
Сообщений: 210
Регистрация: 3-11-06
Пользователь №: 21 936



Цитата(DRUID3 @ Jun 28 2007, 16:10) *
Да, именно это я и хотел сказать... Прошу прощения у тех, кто не может или ленится выхватывать из контекста... blush.gif

Ну если Вы именно это и хотели сказать biggrin.gif , то необходимость оверсампленга при применении окна вызывает большие сомнения. lol.gif :
Цитата(DRUID3 @ Jun 28 2007, 16:10) *
Что Вы говорите... biggrin.gif Хотя, может в Вашей реализации это так и есть ... lol.gif

Да это у кого угодно так lol.gif lol.gif lol.gif
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 6th July 2025 - 16:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.0144 секунд с 7
ELECTRONIX ©2004-2016