Форум Радиолюбителей

Микрофонный ФНЧ - цифровой алгоритм?

42202 просмотров, 12 ответов

ra0ahc 19 февраля 2022 г. в 05:02#1
На языке С надо?
VA7KL 19 февраля 2022 г. в 05:49#2
Может кто покажет алгоритм ФНЧ для микрофонного усилителя.. Чтобы ограничить полосу до 3 кГц. Пока что я оцифровую голос, определяю его мгновенную частоту и в ДДС с помощью STM синтезирую ВЧ однополосный сигнал. Без всякой ВЧ фильтрации пока, что неправильно но очень удобно - получается практически телефонный трансивер прямого преобразования, сразу на рабочей частоте. На картинке с эфира видно что спектр выплескивается за 3 кГц.
Егм 19 февраля 2022 г. в 07:56#3
Если поможет могу маткадовский файл расчёта КИХ фильтра выложить .(комплексная математика)
VA7KL 19 февраля 2022 г. в 09:03#4
КИХ фильтра
Спасибо! Хорошо бы с советом: "такого то порядка, такого то типа, работает". На фильтры можно полжизни потратить, что паять будет некогда.
Егм 19 февраля 2022 г. в 09:52#5
Хорошо бы с советом:
Самый простой вариант:
1 Оцифровываем "голос"
2 Преобразованием Фурье(ПФ) получаем частотный спектр(ЧС) .
3 На ЧС удаляем не нужные компоненты (не нужные частоты приравниваем 0)
4 Выполняем обратное ПФ , получаем цифровой "голос"с желаемыми параметрами .
Всё нужно делать с реальной и с мнимой частью ЧС . Иначе на выходе получите весьма специфичный "голос".
И ни каких заморочек с расчётом фильтров .
VA7KL 19 февраля 2022 г. в 10:07#6
На языке С
Та я формулы легко перевожу в STM C, были бы они.

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

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

Хотите по времени - фильтр КИХ3.xmcd считает нормированную импульсную характеристику(НИХ) ФНЧ .
VA7KL 21 февраля 2022 г. в 05:19#8
Спасибо, есть в чем покопаться.
У себя в Матлабе нашел расчет 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 г. в 08:00#9
y(n) = b0*x(n) + b1*x(n-1) ... + bM*x(n-M) - a1*y(n-1) - ... - aM*y(n-M)
Пришла дурная мысля :
А если тупо , вручную подбирать коэффициенты ?
В любой матсреде результат сразу будет видно .
VA7KL 21 февраля 2022 г. в 08:54#10
..может Матлаб так и делает
ra0ahc 21 февраля 2022 г. в 09:06#11
Господа, так не делается ))) вам нужно налету считать коэффициенты фир фильтра. Доберусь до компа найду готовые проги на С . Просто выставите полосу с обеих сторон и все, подавление сильное и резкое за полосой. Но я уже много раз говорил, что фильтрацией должен заниматься отдельный процессор. Помните мой проект на адау1467? Там очень много фильтров. И по приему и по передаче. Подавление боковой требует два фнч последовательно. Зачем грузить процессор такой сложной задачей? Процессор - это организатор и смотрящий и показывающий)))
VA7KL 22 февраля 2022 г. в 06:45#12
Rick классный дядька, на www.dsprelated.com тусуется, легко отвечает на вопросы. Мне мозги почистил, когда я, сделав преобразование Гильберта на передачу, пытался присобачить его задом наперёд к квадратурному полумонстру Игоря.