Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Усиление сигнала пропорционально частоте
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
TViT
Народ подскажите пожалуйста, есть микрофон он подключен к МК через усилок max9814, все отлично работает , но хочу усилить высокочастотную составляющую программно. Как это сделать чтобы усиление сигнала было ровно по всему спектру в зависимости от того какой сигнал оцифровывается в текущий момент пропорционально поднималось усиление. Своего рода АРУ с частотной компенсацией. Примерно как на графике или линейно если возможно.

Нажмите для просмотра прикрепленного файла
qxov
Создайте фильтр с нужной АЧХ.
SPACUM
Цитата(TViT @ Dec 20 2011, 11:45) *
в зависимости от того какой сигнал оцифровывается в текущий момент пропорционально поднималось усиление
Нажмите для просмотра прикрепленного файла

1. Невразумительный график. По частоте линейный? логарифмический?. По амплитуде это сколько раз?
2. А частотная характеристика должна быть неизменной? только усиление?
3. А если на микрофон 2 частоты попадут - он путаться не должен?
TViT
SPACUM

Цитата
1. Невразумительный график. По частоте линейный? логарифмический?. По амплитуде это сколько раз?

Можно линейный, но лучше не линейный поскольку и мощность в зависимости от расстояния до микрофона не линейно снижается.

Цитата
2. А частотная характеристика должна быть неизменной? только усиление?


Только усиление от 1 до например в 2-3 раза на 10кГц

Цитата
3. А если на микрофон 2 частоты попадут - он путаться не должен?


При смешанном сигнале усилиться должны частоты тем больше чем ближе они к 10кГц - примерно в соответствии с графиком.


qxov

Цитата
Создайте фильтр с нужной АЧХ.


Я расчитывал разные только стандартные фильтры в Scilab, как расчитать фильтр с произвольной АЧХ понятия не имею, тем более нужно без FFT, так как это должно быть оч быстрое простое решение чтобы не создавать задержи между тактами оцифровки, иначе придется уменьшать частоту дескретизации.

Примерно представление у меня такое нужно сделать что-то типа обратной связи в ОУ чтобы высокие на выходе подавались обратно на вход, в простейшем случае это конденсатор, а как это математически расчитать для коэф. свертки незнаю.
SPACUM
Цитата(TViT @ Dec 20 2011, 15:59) *
Только усиление от 1 до например в 2-3 раза на 10кГц


То, что Вы хотите называется фильтр. И никакого отношения к АРУ не имеет.

Я бы посоветовал применить полосовой БИХ фильтр второго порядка на частоту 10 кГц с добротностью 1 и коэффициентом передачи 1-2 раза.
И просуммировать его выход с основным сигналом. Как раз 2-3 раза на 10 кГц и получится.
Но правильнее включить его в аналоговом виде в микрофонный предварительный усилитель - шумов меньше будет.

Я делал такое устройство для одного певца, которому не нравился собственный голос записанный на аппаратуре с линейной АЧХ.
Добавление такого фильтра на частоту 15 кГц было признано идеальным решением.
TViT
Цитата(SPACUM @ Dec 21 2011, 12:02) *
То, что Вы хотите называется фильтр. И никакого отношения к АРУ не имеет.

Я бы посоветовал применить полосовой БИХ фильтр второго порядка на частоту 10 кГц с добротностью 1 и коэффициентом передачи 1-2 раза.
И просуммировать его выход с основным сигналом. Как раз 2-3 раза на 10 кГц и получится.
Но правильнее включить его в аналоговом виде в микрофонный предварительный усилитель - шумов меньше будет.

Я делал такое устройство для одного певца, которому не нравился собственный голос записанный на аппаратуре с линейной АЧХ.
Добавление такого фильтра на частоту 15 кГц было признано идеальным решением.



Хорошо спасибо попробую сделать обычный фильтр, делал через ВЧ фильтр, но он что-то давит сильно сигнал нужно поднимать усиление чтобы выйти из минуса в единицу, а на высоких чтобы больше единицы было, незнаю не делал такого, попробую

А вот что привлекло внимание так это функция yulewalk в matlab, Scilab она как я понял для этих целей как раз оч подходит буду пробовать.

В начале тоже поставлю железный фильтр на ОУ просто ради интереса пробую повсякому rolleyes.gif



ToR_TDA
Цитата(TViT @ Dec 21 2011, 12:30) *
Хорошо спасибо попробую сделать обычный фильтр, делал через ВЧ фильтр, но он что-то давит сильно сигнал нужно поднимать усиление чтобы выйти из минуса в единицу, а на высоких чтобы больше единицы было, незнаю не делал такого, попробую

Можно попробовать и просто КИХ фильтр на 2 - 4 коэффициента. Подобрать коэффициенты можно вручную по схеме на рисунке, затем привести к каноническому виду.
TViT
А еще народ подскажите, а как нелинейно усиливать или ослабить например массив данных от 10 до 100? Данные должны передаваться на алгоритм который вернет пересчитанные нелинейно данные. Например 100 максимум ослабление нет (*1), а минимальные данные 10 нужно ослабить (например * 0.02). И желательно чтобы можно было менять кривизну ослабления (нелинейности). Через Логарифм непойму как сделать Log(x) просто степень возвращее, как это испоьзовать для ослабления данных непойму.
Простите за простые вопросы.
Uuftc
Цитата(TViT @ Jun 24 2012, 01:54) *
Например 100 максимум ослабление нет (*1), а минимальные данные 10 нужно ослабить (например * 0.02).

Попробуйте F(x) = x^n, где n = 2
Для signed степень (n) нечетная, или четная с домножением на знак x
TViT
Цитата(Uuftc @ Jun 27 2012, 17:07) *
Попробуйте F(x) = x^n, где n = 2
Для signed степень (n) нечетная, или четная с домножением на знак x


Uuftc Спасибо мне тут уже разжевали ))
http://forum.sources.ru/index.php?showtopic=359860
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.