Перейти к содержанию
    

Цифровой полосовой фильтр

Задача такова. Требуется реализовать цифровой полосовой фильтр на 2000Гц с полосой 10Гц и максимально высоким затуханием и что интересно нужна фаза сигнала (но про это потом). Проц не сигнальный процесс фильтрации необязательно непрерывный. Раньше ЦОС не занимался на считая простеньких ФНЧ 2-го порядка. Надыбал алгоритм БПФ. Алгоритм БПФ позволяет использовать целочисленную математику что хорошо и при этом выделяет фазу сигнала. Господа специалисты а может это то что мне надо. Если да то может быть тогда для одной частоты есть упрощение алгоритма.

Не подскажите заодно сколько отсчетов надо выбрать и какую частоту дискретизации. Плз. Фазу то я по любому думаю вытащу. Но с обычным фильтром траблы с непрерывной фильтрацией или с переходными процессами после подключения. Может кто уже нечто подобное реализовывал. Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Не надо только забывать про антиалиасинговый фильтр, который должен резать все частоты больше 2048 Герц. Особенно с учетом первоначального требования "...максимально высоким затуханием...". А это может оказаться далеко не так просто, так как переходная зона у такого фильтра должна быть всего лишь 2048-2005 = 43Гц :).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не надо только забывать про антиалиасинговый фильтр, который должен резать все частоты больше 2048 Герц. Особенно с учетом первоначального требования "...максимально высоким затуханием...". А это может оказаться далеко не так просто, так как переходная зона у такого фильтра должна быть всего лишь 2048-2005 = 43Гц :).

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

еще можно попробовать алгоритм Герцеля

Goertzel algorithm

(см гугл)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не надо только забывать про антиалиасинговый фильтр, который должен резать все частоты больше 2048 Герц. Особенно с учетом первоначального требования "...максимально высоким затуханием...". А это может оказаться далеко не так просто, так как переходная зона у такого фильтра должна быть всего лишь 2048-2005 = 43Гц :).

 

Фильтр должен быть аналоговый и резать частоты (для частоты семплирования 2000) выше 1000.

Затухания для БПФ реализуются окнами ханна чебышева и.т.д.

БПФ необходим тебе 256 или 512 (окна расширяют фильтр для ханна кажется 1.3 для других как правило больше)

Впринципе из НЧ полосовой можно получить комплексным гетеродинном.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Фильтр должен быть аналоговый и резать частоты (для частоты семплирования 2000) выше 1000.

Затухания для БПФ реализуются окнами ханна чебышева и.т.д.

БПФ необходим тебе 256 или 512 (окна расширяют фильтр для ханна кажется 1.3 для других как правило больше)

 

 

Дааа...без психоделиков понять Ваш пост сложновато, но ведь LSD страшно отвлекает от работы галлюцинациями :biggrin: .

Во-первых автору надо часто 2 kHz. зачем ему фильтр на 1 kHz?

Во-вторых ДПФ (а не БПФ) ему необходим как можно на большее число точек. Т.к. именно эти точки и задают добротность фильтра на основе ДПФ. А окно еще и потребует оверсэмпленга.

 

 

Впринципе из НЧ полосовой можно получить комплексным гетеродинном.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за ответы. Насчет ДПФ. Не получится ли что добротность фильтра уменьшится из-за использования не целочисленной математики ведь ДПФ хорош в теории но на практике вопрос. Насчет ФНЧ я так понял частота среза должна быть не более половины частоты дискретизации это понятно. Вопрос с количеством отсчетов для меня пока неясен. Алгоритм Герцеля чем он хорош. Что такое окно ханна и оверсемпленг. И вопрос про затухание к примеру насколько сравнимо с обычным цифровым. Мне честно говоря непонятно потому что ранее ЦОС не занимался. Еще раз спасибо за ответы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И еще интересный вопрос к автору: "цифровой полосовой фильтр на 2000Гц с полосой 10Гц" - это фильтр с полосой от 1995 до 2005 Гц? А частота дискретизации при этом какая? Или 2000 Гц - частота дискретизации? Есть такая полезная программка Filter Solutions. Она позволяет помоделировать разные варианты фильтров, в том числе и цифровых, увидеть как зависит результат от точности счета, и в итоге может сгенерировать программку на С с реализацией фильтра.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

DRUID3 правильно пишет по теореме Котельникова *2 но надо с запасом Крякнутую Filter Solutions не нашел есть же mathlab. А вот по матлабу вопросик может ли он расчитывать и моделировать фильтр БПФ и как.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не получится ли что добротность фильтра уменьшится из-за использования не целочисленной математики ведь ДПФ хорош в теории но на практике вопрос.

:biggrin: Нет, ДПФ хорош сам по себе и совершенно не имеет никакого отношения к целочисленной арифметике.

Что такое окно ханна и оверсемпленг.

Окно - функция, на которую множат интервал накопления, это задает АЧХ каждого частотного отсчета. Если он вообще ни на что не умножен, то окно прямоугольное и АЧХ sinc(f).

Оверсемпленг это когда отсчетов берут в несколько раз (а лучше на несколько порядков) больше чем нужно по Котельникову. Делают это для

1) уменьшения влияния случайных помех.

2)уменьшения апертурой погрешности АЦП.

3)при работе не с прямоугольными окнами для исключения их влияния на сигнал.

 

 

И вопрос про затухание к примеру насколько сравнимо с обычным цифровым.

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

 

 

DRUID3 правильно пишет по теореме Котельникова *2 но надо с запасом Крякнутую Filter Solutions не нашел есть же mathlab. А вот по матлабу вопросик может ли он расчитывать и моделировать фильтр БПФ и как.

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

 

Алгоритм Герцеля чем он хорош.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

:biggrin: Нет, ДПФ хорош сам по себе и совершенно не имеет никакого отношения к целочисленной арифметике.

 

Окно - функция, на которую множат интервал накопления, это задает АЧХ каждого частотного отсчета. Если он вообще ни на что не умножен, то окно прямоугольное и АЧХ sinc(f).

Оверсемпленг это когда отсчетов берут в несколько раз (а лучше на несколько порядков) больше чем нужно по Котельникову. Делают это для

1) уменьшения влияния случайных помех.

2)уменьшения апертурой погрешности АЦП.

3)при работе не с прямоугольными окнами для исключения их влияния на сигнал.

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

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

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

Жуткая смесь :)

"Оверсампленг" - это не увеличение числа отсчетов, это повышение ч-ты дискретизации.

Алгоритм Герцеля - алгоритм вычисления ДПФ, со всеми вытекающими. Преимущества - экономия двойная по сравнению с лобовым вычислением. Других преимуществ нет.

Вообще вопрос был о фильтрации. Если автору нужен отфильтрованный сигнал, то ДПФ и даже с окном его не спасут. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Жуткая смесь :)

"Оверсампленг" - это не увеличение числа отсчетов, это повышение ч-ты дискретизации.

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

 

Алгоритм Герцеля - алгоритм вычисления ДПФ, со всеми вытекающими. Преимущества - экономия двойная по сравнению с лобовым вычислением. Других преимуществ нет.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Ну если Вы именно это и хотели сказать :biggrin: , то необходимость оверсампленга при применении окна вызывает большие сомнения. :lol: :

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

Да это у кого угодно так :lol::lol::lol:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...