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

 
 
 
Reply to this topicStart new topic
> Цифровой нерекурсивный НЧ фильтр, проблема с прореживанием
coolibin
сообщение Aug 23 2007, 07:23
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



При нерекурсивной низкочастотной фильтрации частота дискретизации должна быть больше частоты среза в 4..6 раз, так написано в книге и подтверждено на практике, если кто не согласен высказуйте свои предложения. А проблема, собственно, в чем? Получается что на один период сигнала должно приходится около 5ти точек. После фильтрации сигнал получается, ест., ломаным. Как вернутся к старой частоте дискретизации? У меня есть один вариант, но я сначала хотел бы услышать ваши предложения.


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
shasik
сообщение Aug 23 2007, 10:02
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 319
Регистрация: 3-09-05
Из: Беларусь, Новополоцк
Пользователь №: 8 188



Цитата(coolibin @ Aug 23 2007, 10:23) *
После фильтрации сигнал получается, ест., ломаным. Как вернутся к старой частоте дискретизации? У меня есть один вариант, но я сначала хотел бы услышать ваши предложения.


1. Изменять частоту дискретизации - это в ЦОС интерполяция и децимация. Почитайте соответствующий раздел Вашей книги.
2. Как-то не очень все понятно. Что такое старая частота дискретизации? Почему сигнал после фильтрации ломанный? Скажите все еще раз только другими словами.
Go to the top of the page
 
+Quote Post
fontp
сообщение Aug 23 2007, 10:16
Сообщение #3


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



Поднять частоту дискретизации можно или полифазным фильтром или интерполятором. Например, сплайн интерполятором. Но лучше полифазным фильтром. Хотя это в данном случае одно и то же, сплайн интерполятор обычно короткий.
Если частотная характеристика выше 1/n частоты Найквиста обнуляется при фильтрации, то чтобы вернуться обратно ничего не нужно делать кроме сабсэмплинга, т.е. взять каждый n-ый отсчёт, а об остальных забыть (на самом деле не делать фильтрацию для остальных положений фазы)

Сплайн-интерполятор, если не какой попало какой был, а с умом, тоже может работать хорошо
Вот здесь например для модемов
Zhang "Interpolator for all-digital receivers"
Прикрепленные файлы
Прикрепленный файл  Interpolator_for_all_digital_receivers.zip ( 240.08 килобайт ) Кол-во скачиваний: 292
 
Go to the top of the page
 
+Quote Post
-=ВН=-
сообщение Aug 23 2007, 12:24
Сообщение #4


Местный
***

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



Цитата(coolibin @ Aug 23 2007, 11:23) *
При нерекурсивной низкочастотной фильтрации частота дискретизации должна быть больше частоты среза в 4..6 раз, так написано в книге и подтверждено на практике, если кто не согласен высказуйте свои предложения. А проблема, собственно, в чем? Получается что на один период сигнала должно приходится около 5ти точек. После фильтрации сигнал получается, ест., ломаным. Как вернутся к старой частоте дискретизации? У меня есть один вариант, но я сначала хотел бы услышать ваши предложения.

Относительно 4..6 раз - Вы что-нибудь не поняли в прочитанной Вами книге. Или не ту книгу читали. Или ту, но недочитали.Отношение равно 2 - бесконечность.
А вопросы нужно ставить правильно. Фильтрация частоту дискретизации не меняяет. Меняяет ее (у Вас) прореживатель. Самый простой способ вернуться к старой - просто от старой не уходить, т.е. обойти прореживатель.
Если обходить не хочется, а вернуться к старой хочется, то вставляйте между соседними отсчетами отфильтрованного и прореженного сигнала (K-1) нулей, K - целое, равно отношению желаемой частоты дискр. к используемой. Результат пропускайте через еще один фильтр. Низкочастотный. Реализация означенного дополнительного фильтра может быть лобовой, может полифазной.

Сообщение отредактировал -=ВН=- - Aug 23 2007, 12:27
Go to the top of the page
 
+Quote Post
coolibin
сообщение Aug 27 2007, 11:05
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



to shasik
Например, есть сигнал с частотой дискретизации 71 кГц, в котором присутствует 2 гармоники 5Гц и 7Гц. Нам нужно 7Гц убрать, оставить 5 Гц, для этого берем фильтр с граничной частотой 6 Гц. Для эффективной фильтрации нужно чтобы у сигнала была частота дискретизации примерно в 5 раз больше( в нашем случае 6 Гц * 5 = 30 Гц), для этого делаем децимацию, оставляем каждый 2366-ой(71кГц/30Гц) отсчет. Естетсвенно, после этой операции сигнал будет очень не точным, ломаным(5 точек на период всё таки). Так вот мне надо вернутся(или вообще не уходить) к старой частоте дискретизации(71кГц)

To -=ВН=-
Цитата
Относительно 4..6 раз - Вы что-нибудь не поняли в прочитанной Вами книге. Или не ту книгу читали. Или ту, но недочитали.Отношение равно 2 - бесконечность.


Книга - Шрюфер Э. Обработка сигналов: цифровая обработка дискретизированных сигналов, 157-я страница, подраздел - частота дискретизации. Если найдёте, почитайте, может чтото увидите, что я недочитал


Почитайте пост Евгения Николаева
http://electronix.ru/forum/index.php?showtopic=34901
Тем более практика подтверждает данное утверждение


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
-=ВН=-
сообщение Aug 27 2007, 12:08
Сообщение #6


Местный
***

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



Цитата(coolibin @ Aug 27 2007, 15:05) *
to shasik
Например, есть сигнал с частотой дискретизации 71 кГц, в котором присутствует 2 гармоники 5Гц и 7Гц. Нам нужно 7Гц убрать, оставить 5 Гц, для этого берем фильтр с граничной частотой 6 Гц. Для эффективной фильтрации нужно чтобы у сигнала была частота дискретизации примерно в 5 раз больше( в нашем случае 6 Гц * 5 = 30 Гц), для этого делаем децимацию, оставляем каждый 2366-ой(71кГц/30Гц) отсчет. Естетсвенно, после этой операции сигнал будет очень не точным, ломаным(5 точек на период всё таки). Так вот мне надо вернутся(или вообще не уходить) к старой частоте дискретизации(71кГц)

To -=ВН=-
Книга - Шрюфер Э. Обработка сигналов: цифровая обработка дискретизированных сигналов, 157-я страница, подраздел - частота дискретизации. Если найдёте, почитайте, может чтото увидите, что я недочитал
Почитайте пост Евгения Николаева
http://electronix.ru/forum/index.php?showtopic=34901
Тем более практика подтверждает данное утверждение
Go to the top of the page
 
+Quote Post
-=ВН=-
сообщение Aug 27 2007, 16:01
Сообщение #7


Местный
***

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



В посте Евгения Николаева написаны совершенно очевидные и правильные вещи, но к Вашим 4-6 разам они никакого отношения не имеют. На практику Вы ссылаетесь зря. Книжку посмотреть не могу, за неимением оной, но уверен, на нее Вы тоже зря ссылаетесь smile.gif.

По "возвращению" к исходной ч-те дискретизации написал раньше. Могу добавить, что при Ваших цифрах 5 Гц и 71 КГц фильтрацию обычно делают в несколько приемов, супеней. На каждой ступени делая прореживание. Иногда (зависит от используемого железа) очень удобно первые ступени фильтрации-прореживания делать на основе CIC-фильтров. А в виде "классического" КИХ фильтра сделать только последнюю ступень. CIC-фильтр - тоже КИХ-фильтр, только своеобразной структуры.
Повторю - иногда использование CIC дает ощутимый выигрыш по вычислительным затратам, по сравнению с КИХ "классической" структуры и с той же или близкой ЧХ. Выигрыш будет, например, при реализации в FPGA, при реализации на процессорах, лишенных злой волей их разработчика замечательной операции MAC.
Причем совершенно не обязательно снижать частоту дискретизации до 30 Гц , 4-6 раз - это глупость.
Конкретная цифра зависит от используемого конкретного железа, его ресурсов. И ни от чего более.

Обратную операцию, т.е. возвращение к исходной (или просто более высокой) частоте дискр, в принципе тоже можно сделать с помощью CIC, только задом наперед включенных. Техническую суть обратной операции написал раньше. Вставление нулей между отсчетами и затем фильтрация. В Вашем конкретном случае, считая что Вы понизили ч-ту дискретизации до 30 Гц, это будет ФНЧ с полосой пропускания 15 Гц на частоте дискр. 71 КГц. Как видите, он по требованиям недалеко ушел от 5 Гц на 71 КГц.
Но жизнь существенно облегчается тем, что во входных данных для этого фильтра львиная доля отсчетов просто равна 0. Что позволяет получить существенную экономию в вычислениях. А используется это обстоятельство, обилие нулевых отсчетов, в полифазной реализации фильтра.

"Физическая" суть обратной операции очень близка к восстановлению исходного аналогового сигнала из его дискретизированного представления. Каковое восстановление является неотъемлемой частью т. Котельникова smile.gif

Ну и еще одно - подумайте, есть ли Вам смысл возвращаться к исходной ч-те дискретиз. в 71 КГц. Все-таки 5 отсчетов на период очень часто более чем, хотя, конечно, есть исключения
Go to the top of the page
 
+Quote Post
coolibin
сообщение Aug 28 2007, 11:34
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



TO -=ВН=-
Цитата
Книжку посмотреть не могу, за неимением оной, но уверен, на нее Вы тоже зря ссылаетесь

Если вы не против, дайте своё мыло, я отошлю вам отсканированную страницу этой книги где про это написано

Цитата
Выигрыш будет, например, при реализации в FPGA, при реализации на процессорах, лишенных злой волей их разработчика замечательной операции MAC.

Кстати, я забыл сказать, я пишу программу на C++ под обычную персональную ЭВМ и мне эти слова ничего не говорят

Цитата
Ну и еще одно - подумайте, есть ли Вам смысл возвращаться к исходной ч-те дискретиз. в 71 КГц. Все-таки 5 отсчетов на период очень часто более чем, хотя, конечно, есть исключения

Увы, нужно!

CIC-фильтр, это фильтр со скользащим средним?


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
fontp
сообщение Aug 28 2007, 12:17
Сообщение #9


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



Цитата(coolibin @ Aug 28 2007, 15:34) *
CIC-фильтр, это фильтр со скользащим средним?


Типа того в простейшем случае. Обычно используют фильтры более высокого порядка
sinc в степени N
http://www.dspguru.com/info/tutor/cic.htm
CIC это просто эффективная реализация фильтра НЧ. Но поскольку он не плоский, а sinc, часто
приходится на последнем этапе использовать FIR, корректирующий эти синки вблизи нуля частот

ВН сказал про типа СIC наоборот.
Если Вас не волнует быстродействие можете использовать одинаковые ФНЧ. Вставляете между отсчётами нули (к-штук) и фильтруете и так несколько раз (м-раз) повышая частоту дискретизации
как "к" в степени "м". Если говорить про интерполяцию

Но если Вас совсем не интересует быстродействие проще всего этого не делать, а фильтровать на исходной частоте дискретизации, просто фильтр будет длинный. В FDA-TOOL Матлаба синтезируйте с
нужной крутизной длиннющий фильтр. На самом деле, чем выше частота дискретизации тем лучше фильтр, без всяких 5, мало ли что 5 достаточно
Вам же всё равно по быстродействию :-)
Go to the top of the page
 
+Quote Post
-=ВН=-
сообщение Aug 28 2007, 15:28
Сообщение #10


Местный
***

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



Цитата(coolibin @ Aug 28 2007, 15:34) *
TO -=ВН=-

Если вы не против, дайте своё мыло, я отошлю вам отсканированную страницу этой книги где про это написано

Зачем она мне? Я такую книжку и сам в состоянии написать smile.gif
Еще раз. Отношение частоты дискретизации к частоте среза фильтра может быть любым, больше-равным 2. Отношение частоты дискретизации к переходной полосе может быть любым, больше равным 2. (Переходная полоса - частотный интервал между частотой среза (полосой пропускания) и полосой непропускания.) Подавление в полосе непропускания может быть сколь угодно большим. Фильтр при этом прекрасно синтезируется и не менее прекрасно работает. Все дело в порядке фильтра и разрядности его к-тов. Проблемы, связанные с этим, т.е. с большим порядком и разрядностью к-тов вполне решабельные. В крайнем случае - выбором соответсвующего железа. И использованием, например, 1 048 576-разрядных к-тов, с написанием для них собственной арифметики, что есть один пустяк при использовании ужасно могучего инструмента по названием Цэ++. Классом больше, классом меньше...
И в книжке наверняка написано примерно это, если Вы ее читали всю, а не одну страницу.

Конкректный пример - если у Вас период дискретизации неделя, то цифровой КИХ фильтр достаточно большого порядка Вы легко реализуете даже на калькуляторе. И он у Вас прекрасно отфильтрует гармоники с перидом, например, полгода. Только устанете на кнопочки нажимать, с другой стороны эта процедура отвлечет Вас от тоски и печали, неизбежных при праздном проведении времени в ожидании очередного отсчета. Можете проэксперементировать. Персональный компьютер в этой ситуации Вам может даже и не понадобиться.

Цитата(coolibin @ Aug 28 2007, 15:34) *
Кстати, я забыл сказать, я пишу программу на C++ под обычную персональную ЭВМ и мне эти слова ничего не говорят

Это печально, что ничего они Вам не говорят. С другой стороны - CIC фильтр для Вашего персональной сплюснутой Цэ фильтрации может дать неплохой выигрыш.
Цитата(coolibin @ Aug 28 2007, 15:34) *
Увы нужно

Ну по крайней мере Ваше обоснование этой нужды никуда не годится.

Цитата(coolibin @ Aug 28 2007, 15:34) *
CIC-фильтр, это фильтр со скользащим средним?

Это первого порядка. Более высокого порядка - каскадное соединение скользящих средних.
Там основной фокус в вставке прореживателя между интегратором и дифференциатором. Этот фокус позволяет фактически избавиться от наложений в области нулевой частоты. И потом творить в этой области чудеса "обычными" КИХ или БИХ. На низкой частоте дискретизации. Практически Ваш случай.
А вообще читайте книжки. Лучше больше, чем одну страницу.
Go to the top of the page
 
+Quote Post
shasik
сообщение Aug 29 2007, 05:40
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 319
Регистрация: 3-09-05
Из: Беларусь, Новополоцк
Пользователь №: 8 188



Цитата(coolibin @ Aug 27 2007, 14:05) *
to shasik
Например, есть сигнал с частотой дискретизации 71 кГц, в котором присутствует 2 гармоники 5Гц и 7Гц. Нам нужно 7Гц убрать, оставить 5 Гц, для этого берем фильтр с граничной частотой 6 Гц. Для эффективной фильтрации нужно чтобы у сигнала была частота дискретизации примерно в 5 раз больше( в нашем случае 6 Гц * 5 = 30 Гц), для этого делаем децимацию, оставляем каждый 2366-ой(71кГц/30Гц) отсчет. Естетсвенно, после этой операции сигнал будет очень не точным, ломаным(5 точек на период всё таки). Так вот мне надо вернутся(или вообще не уходить) к старой частоте дискретизации(71кГц)


Ух-х, бред какой! Жаль, что давно сюда не заглядывал, а то посмеялся бы раньшеsmile.gif))
Короче, не дурите голову себе и всем остальным. Для начала читаем библию ЦОС'а Теория и применение ЦОС от Рабинера&Голда, потом еще пару аналогичных книг. А уж после этого, если останутся вопросы, вот тогда и выходим на сцену.
Go to the top of the page
 
+Quote Post
coolibin
сообщение Aug 29 2007, 08:34
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



Я не пойму, может вы чего то не поняли, может я что то не досказал?

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

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


Вы согласны, что это правда. Так? Т. е. частоту дискретизации нужно менять, "подстраивая" её под частоту среза?


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
-=ВН=-
сообщение Aug 29 2007, 09:41
Сообщение #13


Местный
***

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



Цитата(coolibin @ Aug 29 2007, 12:34) *
TO -=ВН=-
Давайте по порядку!
Евгений Николаев писал:
Отделить 5Гц от 7Гц не сложнее, чем 500Гц от 700Гц, но при условии, что частоты дискретизации отличаются тоже в 100 раз.
Если же частота дисретизации 1000Гц, то вполне логично, что Вам не хватает порядка для "распознания" и отделения столь малых частот, т.к. образно говоря, окно наблюдения для них будет слишком велико.


Вы согласны, что это правда. Так? Т. е. частоту дискретизации нужно менять, "подстраивая" её под частоту среза?

Блин. Ну сколько можно.
Если Вы собираетесь отфильтровывать 5 Гц от 7 ОДНИМ И ТЕМ ЖЕ фильтром (одни и те же коэффициенты), что и 500 от 700, то да, Вы должны пропорционально менять частоту дискретизации. Но кто Вас заставляет использовать один и тот же фильтр?
Cинтезируйте ИНДИВИДУАЛЬНЫЙ фильтр для отфильтровки 5 от 7 при частоте дискретизации например 71 КГц и ИНДИВИДУАЛЬНЫЙ фильтр для отфильтровки 500 от 700 при ТОЙ ЖЕ частоте дискретизации. Фильтры получатся разные, разного порядка, с разными коэффициентами. Но работающие. И частота дискретизации будет одна и та же.

Послушайте, прочитайте книжки. Вам их уже называли. Вам же легче будет.
Go to the top of the page
 
+Quote Post
mse
сообщение Aug 29 2007, 09:55
Сообщение #14


Знающий
****

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



Цитата(coolibin @ Aug 29 2007, 12:34) *
TO -=ВН=-
Давайте по порядку!
Евгений Николаев писал:
Отделить 5Гц от 7Гц не сложнее, чем 500Гц от 700Гц, но при условии, что частоты дискретизации отличаются тоже в 100 раз.
Если же частота дисретизации 1000Гц, то вполне логично, что Вам не хватает порядка для "распознания" и отделения столь малых частот, т.к. образно говоря, окно наблюдения для них будет слишком велико.


Вы согласны, что это правда. Так? Т. е. частоту дискретизации нужно менять, "подстраивая" её под частоту среза?

Хоть я и не ВН, но скажу ;О). Товарищ из цытаты хотел сказать, что если у вас есть готовый ЦФ на 500-700Гц, то снизив частоту выборки во сто раз, вы тем-же фильтром отфильтруете 5-7Гц. И всё.
Если фильтра нет, то его надо сгородить. Можно тупо в лоб, набрав тыщ сто выборок и пропустив их через аналогичный по длине ЦФ с адекватными длине коэффициентами. Это содержится в предложении ВН и фразе про 1000Гц дискретизаццыи.
Go to the top of the page
 
+Quote Post

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

 


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


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