Создайте фильтр, позволяющий свободно пропускать частоты ниже 5 кГц, но все частоты выше 5,2 кГц должны быть необнаружимыми

Моя самая большая проблема с этим вопросом - это его смехотворно крутая скорость сползания.

Я предполагаю, что сигнал не обнаруживается, если его коэффициент усиления составляет -20 дБ. Это означает, что в пределах полосы перехода 200 Гц уровень сигнала должен уменьшаться на 20 дБ.

Если мои вычисления верны, этот фильтр требует скорости сбрасывания 1200 дБ /д. Для этого требуется 60 полюсов, что, очевидно, не представляется возможным.

Я хотел бы использовать аналоговый активный фильтр с минимальной пульсацией в полосе пропускания. Большой фазовый сдвиг не слишком важен.

Одним из возможных решений является использование фильтра с надрезом при частоте 5,2 кГц. Однако частоты, превышающие полосу пропускания режекторного фильтра, все еще недостаточно фильтруются.

Просьба указать любые недостатки в моей логике и предложить потенциальные решения. Спасибо.

12 голосов | спросил Tamir Shklaz 10 MarpmSat, 10 Mar 2018 17:32:15 +03002018-03-10T17:32:15+03:0005 2018, 17:32:15

6 ответов


21

Вы приняли 20dB /dec для списания заказа фильтра для вашего фильтра. Это не относится ко всем типам фильтров.

Пусть \ $ f_0 = 5 \ mathrm {kHz} \ $ и \ $ f _ {\ mathrm {stop}} = 5.2 \ mathrm {kHz} \ $. Затем $$ \ frac {f_ {\ mathrm {stop}}} {f_0} = 1.04. $$

Посмотрите на этот эллиптический фильтр четвертого порядка, взятый из статьи в Википедии . эллиптический

Хотя это не совсем соответствует вашим требованиям, вы можете видеть, что это возможно. Эллиптический фильтр более высокого порядка может достичь того, что вам нужно.

Вы должны иметь в виду, что эллиптические фильтры могут создавать помехи для фазы сигнала. Поскольку вы ничего не говорили о ваших фазовых ограничениях, я предположил, что подходит эллиптический фильтр.

ответил user110971 10 MarpmSat, 10 Mar 2018 21:19:06 +03002018-03-10T21:19:06+03:0009 2018, 21:19:06
21

Для такого резкого роллофа требуется цифровой фильтр. Даже не думай об аналоге. Вам необходимо сверлить ввод с помощью функции sinc. Ширина функции sinc (количество точек ядра) определяет ослабление полосы пропускания.

Я не делал математику, но некоторые очень быстрые (может быть выключено, ваша работа, чтобы делать правильно) вычислений говорит, что вам, вероятно, потребуется несколько 100 баллов, если выборка на 20 кГц. 200 точек на 20 кГц означает скорость MAC 4 МГц. Это выполнимо, на самом деле значительно ниже того, что современные DSP могут делать довольно легко. Это означает, что ваша проблема вполне приемлема. Что-то вроде dsPIC серии E может сделать это, и это довольно низко, если вы ищете только возможности DSP.

ответил Olin Lathrop 10 MarpmSat, 10 Mar 2018 21:28:35 +03002018-03-10T21:28:35+03:0009 2018, 21:28:35
4

Если вы допускаете существенную задержку или обрабатываете записанный сигнал, вы можете просто выполнять БПФ, удалять ненужные компоненты и инвертировать преобразование. Вы должны усечь fft с помощью правильной функции окна, чтобы поддерживать приемлемый сигнал.

ответил user287001 10 MarpmSat, 10 Mar 2018 18:00:35 +03002018-03-10T18:00:35+03:0006 2018, 18:00:35
4

Я бы выбрал чип аудиокодека (ADC + DAC), проложил цифровой выход ADC на вход ЦАП и установил частоту дискретизации до 10 кГц.

Эти чипы уже включают в себя механизм цифрового фильтра, который вам нужен. Быстрая проверка данных, похоже, подтверждает, что вы получите необходимую производительность фильтра.

ответил peufeu 11 MaramSun, 11 Mar 2018 00:44:01 +03002018-03-11T00:44:01+03:0012 2018, 00:44:01
4

У вас уже есть много хороших ответов с хорошими традиционными решениями, эллиптическими фильтрами (короткое время) FFT и т. д., поэтому я думал, что могу добавить что-то из мира подкадрового кодирования /вейвлет-преобразования.

Поддиапазонное кодирование означает разделение частотного спектра на «бункеры», каждый из этих бункеров имеет свой собственный связанный фильтр. Более жесткие полосы, более широкие фильтры во временной области (естественно), но в областях, где нам не нужны очень жесткие полосы, мы можем уйти с очень короткими & дешевые фильтры для расчета.

Вейвлеты - это функции, которые являются результатом определенного типа фильтров поддиапазонов, которые генерируются итерированной фильтрацией с последующей подвыборкой.

Идея заключалась бы в том, чтобы найти интересующие поддиапазоны, которые позволили бы нам максимально сжать вычисления, но все равно получить хорошую гранулярность в интересующей полосе.

Пример декомпозиции пакетов Dubechies 12 на трех уровнях (Wikipedia):

 Введите описание изображения здесь>> </a> </p>

<p> Затем мы можем выборочно суммировать их, чтобы получить требуемый ответ. И те, которые мы не хотим добавлять - нам даже не нужно вычислять! Нам понадобятся более тонкие ближе к диапазону 5-5,2 кГц, чтобы иметь возможность достаточно крутого поведения. Но, с другой стороны, вдали от полосы 5-5,2 кГц мы можем уйти с несколькими подразделениями. </p></body></html>

ответил mathreadler 11 MarpmSun, 11 Mar 2018 16:07:03 +03002018-03-11T16:07:03+03:0004 2018, 16:07:03
3

, если вы можете ГАРАНТИРОВАТЬ синусоидальный вход, тогда может быть достаточно одноразового моностабильного (74121). Или повторный запуск 122/123.

Используйте компаратор до 74121/122/123

Некоторые MCU включают аналоговые компараторы в качестве их периферийных устройств; после преобразования в прямоугольную волну вы можете использовать таймеры и т. д. для обнаружения выше /ниже 5000 Гц, если MCU имеет стабилизированные XTAL часы. Нет необходимости в термочувствительном моностабильном состоянии.

ответил analogsystemsrf 10 MarpmSat, 10 Mar 2018 20:16:02 +03002018-03-10T20:16:02+03:0008 2018, 20:16:02

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132