Автор Тема: Микрофонный ФНЧ - цифровой алгоритм?  (Прочитано 13344 раз)

0 Пользователей и 3 Гостей просматривают эту тему.

Оффлайн VA7KL

  • Administrator
  • *****
  • Сообщений: 142
  • ex-VA7FFT
Микрофонный ФНЧ - цифровой алгоритм?
« : Февраль 19, 2022, 05:49:11 am »
Может кто покажет алгоритм ФНЧ для микрофонного усилителя.. Чтобы ограничить полосу до 3 кГц. Пока что я оцифровую голос, определяю его мгновенную частоту и в ДДС с помощью STM синтезирую ВЧ однополосный сигнал. Без всякой ВЧ фильтрации пока, что неправильно но очень удобно - получается практически телефонный трансивер прямого преобразования, сразу на рабочей частоте. На картинке с эфира видно что спектр выплескивается за 3 кГц.
« Последнее редактирование: Февраль 19, 2022, 05:55:59 am от VA7KL »

Оффлайн Егм

  • Hero Member
  • *****
  • Сообщений: 908
Re: Микрофонный ФНЧ - цифровой алгоритм?
« Ответ #1 : Февраль 19, 2022, 07:56:40 am »
Если поможет могу маткадовский файл расчёта КИХ фильтра выложить .(комплексная математика)

Оффлайн VA7KL

  • Administrator
  • *****
  • Сообщений: 142
  • ex-VA7FFT
Re: Микрофонный ФНЧ - цифровой алгоритм?
« Ответ #2 : Февраль 19, 2022, 09:03:46 am »
КИХ фильтра
Спасибо! Хорошо бы с советом: "такого то порядка, такого то типа, работает". На фильтры можно полжизни потратить, что паять будет некогда.

Оффлайн Егм

  • Hero Member
  • *****
  • Сообщений: 908
Re: Микрофонный ФНЧ - цифровой алгоритм?
« Ответ #3 : Февраль 19, 2022, 09:52:25 am »
Хорошо бы с советом:
Самый простой вариант:
1 Оцифровываем "голос"
2 Преобразованием Фурье(ПФ) получаем частотный спектр(ЧС) .
3 На ЧС удаляем не нужные компоненты (не нужные частоты приравниваем 0)
4 Выполняем обратное ПФ , получаем цифровой "голос"с желаемыми параметрами .
Всё нужно делать с реальной и с мнимой частью ЧС . Иначе на выходе получите весьма специфичный   "голос".
И ни каких заморочек с расчётом фильтров .

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Микрофонный ФНЧ - цифровой алгоритм?
« Ответ #4 : Февраль 19, 2022, 05:02:15 pm »
На языке С надо?
Да да, я знаю, у меня ничего не получится )))

Оффлайн VA7KL

  • Administrator
  • *****
  • Сообщений: 142
  • ex-VA7FFT
Re: Микрофонный ФНЧ - цифровой алгоритм?
« Ответ #5 : Февраль 19, 2022, 10:07:44 pm »
На языке С
Та я формулы легко перевожу в STM C, были бы они.

Фурье
Так для него же надо накопить буфер 1024 как минимум, желательно с перекрытием, потом оконную функцию, и все это надо в реальном времени...Не проще ли во временнОй области, FIR или IIR ? Я так Hilbert transform сделал и на прием и на передачу работает. А через ПФ пришлось бы делать и прямое и обратное, зануляя отрицательные коэффициенты.

Оффлайн Егм

  • Hero Member
  • *****
  • Сообщений: 908
Re: Микрофонный ФНЧ - цифровой алгоритм?
« Ответ #6 : Февраль 20, 2022, 02:19:06 pm »
"У ти какой , привередливый " - автора не помню. 44443
Так для него же надо накопить буфер 1024 как минимум, желательно с перекрытием, потом оконную функцию, и все это надо в реальном времени...

На STM задержка не очень большая будет .

Хотите по времени -  фильтр КИХ3.xmcd считает нормированную импульсную характеристику(НИХ) ФНЧ .
 

0лег

  • Гость
Re: Микрофонный ФНЧ - цифровой алгоритм?
« Ответ #7 : Февраль 20, 2022, 04:24:39 pm »
Добавлю еще один вариант расчета коэффициентов ФНЧ с КИХ (окно Кайзера) без MathCad.
Скрипт на Python. Для расчета использует библиотеки NumPy, SciPy.
Для построения графиков используется модуль pylab от MathPlotLib.

Сделан на основе вот этого скрипта https://scipy-cookbook.readthedocs.io/items/FIRFilter.html

Исходные данные:
1. Частота дискретизации
2. Частота среза ФНЧ
3. Минимальное значение ослабления, которое должен обеспечивать фильтр в полосе задерживания
4. Ширина полосы между частотой среза ФНЧ (полосой пропускани) и началом полосы задерживания. Этот параметр определяет крутизну ската фильтра и существенно влияет на необходимый порядок фильтра.

На выходе печатает количество коэффициентов (порядок фильтра) N и таблицу с номерами и значениями коэффициентов.
Также выводятся графики коэффициентов и АЧХ фильтра в пределах от 0 до частоты Найквиста   
« Последнее редактирование: Февраль 20, 2022, 04:27:01 pm от 0лег »

Оффлайн VA7KL

  • Administrator
  • *****
  • Сообщений: 142
  • ex-VA7FFT
Re: Микрофонный ФНЧ - цифровой алгоритм?
« Ответ #8 : Февраль 21, 2022, 05:19:43 am »
Спасибо, есть в чем покопаться.
У себя в Матлабе нашел расчет IIR ФНЧ

Fs = 48000 Hz
Fp =  3000 Hz
Ap =  0.1 dB
Ast = 60 dB
N = 8

b = 0.001525705344423  -0.008066652791675   0.020768215408303  -0.034138713878115   0.039887774602053  -0.034138713878115   0.020768215408303  -0.008066652791675   0.001525705344423

a = 1.000000000000000  -7.010534851856182  21.847030639853834 -39.487511024935273  45.242951134156677 -33.630460181362238  15.832146586586743  -4.314632973475927   0.521076305105171

y(n) = b0*x(n) + b1*x(n-1) ... + bM*x(n-M) - a1*y(n-1) - ... - aM*y(n-M)
« Последнее редактирование: Февраль 21, 2022, 07:28:05 am от VA7KL »

Оффлайн Егм

  • Hero Member
  • *****
  • Сообщений: 908
Re: Микрофонный ФНЧ - цифровой алгоритм?
« Ответ #9 : Февраль 21, 2022, 08:00:04 am »
y(n) = b0*x(n) + b1*x(n-1) ... + bM*x(n-M) - a1*y(n-1) - ... - aM*y(n-M)
Пришла дурная мысля :
А если тупо , вручную подбирать коэффициенты ?
 В любой матсреде результат сразу будет видно .

Оффлайн VA7KL

  • Administrator
  • *****
  • Сообщений: 142
  • ex-VA7FFT
Re: Микрофонный ФНЧ - цифровой алгоритм?
« Ответ #10 : Февраль 21, 2022, 08:54:09 am »
..может Матлаб так и делает  33wr

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Микрофонный ФНЧ - цифровой алгоритм?
« Ответ #11 : Февраль 21, 2022, 09:06:21 am »
Господа, так не делается ))) вам нужно налету считать коэффициенты фир фильтра. Доберусь до компа найду готовые проги на С . Просто выставите полосу с обеих сторон и все, подавление сильное и резкое за полосой. Но я уже много раз говорил, что фильтрацией должен заниматься отдельный процессор. Помните мой проект на адау1467? Там очень много фильтров. И по приему и по передаче. Подавление боковой требует два фнч последовательно. Зачем грузить процессор такой сложной задачей? Процессор - это организатор и смотрящий и показывающий))) 
Да да, я знаю, у меня ничего не получится )))

0лег

  • Гость
Re: Микрофонный ФНЧ - цифровой алгоритм?
« Ответ #12 : Февраль 21, 2022, 12:08:12 pm »
Господа, так не делается ))) вам нужно налету считать коэффициенты фир фильтра

Сергей, а с какой целью требуется считать коэффициенты каждого фильтра "на лету" в обычном передающем тракте? Разве есть необходимость постоянно менять полосу (крутизну ската, затухание) в процессе передачи в зависимости от входного сигнала с микрофона?

0лег

  • Гость
Re: Микрофонный ФНЧ - цифровой алгоритм?
« Ответ #13 : Февраль 21, 2022, 12:46:25 pm »
Пришла дурная мысля :
А если тупо , вручную подбирать коэффициенты ?
 В любой матсреде результат сразу будет видно .
..может Матлаб так и делает

Тема как-то неожиданно перешла от расчета фильтра с КИХ к фильтрам с БИХ (рекурсивным фильтрам).

Для расчета коэффициентов КИХ-фильтров можно использовать метод окна и метод частотной выборки. Это очень распространенные методы. Скрипт, который я выложил ранее, использует расчет именно по методу окна (он реализован в виде уже готовой функции в библиотеке SciPy)

Для БИХ фильтров подходы немного другие. Например - трансформация аналоговых фильтров в цифровые. Вообще, с фильтрами БИХ все немного посложнее.

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

0лег

  • Гость
Re: Микрофонный ФНЧ - цифровой алгоритм?
« Ответ #14 : Февраль 21, 2022, 02:30:51 pm »
Есть хорошая книга по цифровой обработке сигналов, в которой достаточно подробно рассказано о цифровых фильтрах и методиках их расчета.
"Understanding Digital Signal Processing" - Richard G. Lyons https://www.amazon.com/Understanding-Digital-Signal-Processing-2nd/dp/0131089897

Эта книга также переведена на русский язык
Ричард Лайонс, "Цифровая обработка сигналов: второе издание", 2006г, "Бином-пресс"