Форум: "Media";
Текущий архив: 2007.08.19;
Скачать: [xml.tar.bz2];
ВнизПодавление частоты. Найти похожие ветки
← →
DesWind © (2006-11-08 15:19) [0]Есть оцифрованый сигнал. Надо подавить определенную частоту и ее гармоники, что посоветуете?
← →
Сергей М. © (2006-11-08 15:23) [1]Фурье-преобразования, что ж еще ...
← →
DesWind © (2006-11-08 15:36) [2]Типа туда, вырезать, а потом обратно?.. Хм... Мож че попроще фильтры какие нить... А то даж не знаю че спросить у яндекса ).
← →
Ketmar © (2006-11-08 15:39) [3]а фильтры -- это тоже Фурье. всё на свете Фурье. %-)
← →
Ketmar © (2006-11-08 15:46) [4]кстати, ввёл в гугль "цифровые фильтры". кучу интересного вернуло. вот это, например: http://ru.wikipedia.org/wiki/Цифровой_фильтр
← →
Jeer © (2006-11-08 16:11) [5]
> DesWind © (08.11.06 15:19)
>
> Есть оцифрованый сигнал. Надо подавить определенную частоту
> и ее гармоники, что посоветуете?
Гребенчатый фильтр.
← →
Jeer © (2006-11-08 16:12) [6]
> Сергей М. © (08.11.06 15:23) [1]
>
> Фурье-преобразования, что ж еще ...
В общем случае - слишком накладно.
← →
Сергей М. © (2006-11-08 16:12) [7]
> Jeer © (08.11.06 16:11) [5]
> Гребенчатый фильтр.
Альтернатива Фурье ?
← →
Jeer © (2006-11-08 16:18) [8]Да нет, почему же.
"Обычный" нерекурсивный, построенный по определенным правилам.
Давит кратные частоты.
Достаточно хорошо развита теория и практика конструирования.
Использовались (ся) в фильтрах подавления сетевых помех, в АЦП, в частности.
← →
Сергей М. © (2006-11-08 16:24) [9]
> Давит кратные частоты
Серега, автор не ассоциировал "гармоники" с "кратными частотами"..
Хрен знает, что он под "гармониками" подразумевал)
← →
Jeer © (2006-11-08 16:29) [10]Вероятно, как и все - в основном это частоты, кратные основной.
Например, есть 50 Гц. частота на перазитном входе (питание, эфир, емкостная связь и пр.)
Проходя всякие нелинейности, в том числе и выпрямитель, возникают и лезут дальше гармоники, кратные 50.
Нужно их давить.
Если брать за источник гармоник обычный сетевой двухполупериодный выпрямитель, то там основная паразитная частота - 100 Hz
← →
Jeer © (2006-11-08 16:30) [11]Если не вдаваться в теорию интермодуляции, конечно:)))
← →
Сергей М. © (2006-11-08 16:37) [12]
> Jeer © (08.11.06 16:29) [10]
ну ежели так, то согласен - сойдет и "гребенка")
← →
MBo © (2006-11-08 16:56) [13]
var
N, i: Integer;
A: array of Double;
Mul, ReSum, ImSum, RejF, MRF: Double;
begin
N := 44100;
SetLength(A, N); // 1 секунда оцифровки с частотой 44100
Mul := 2 * Pi / N;
for i := 0 to N - 1 do begin
A[i] := 2 * Sin(Mul * i * 2) + Sin(Mul * i * 13);// смесь частот 2 и 13 Гц, низкие - для наглядности графиков
Series1.Add(A[i]);
end;
RejF := 2; // частота режекторного фильтра
MRF := RejF * Mul;
ReSum := 0;
ImSum := 0;
for i := 0 to N - 1 do begin
ReSum := ReSum + A[i] * cos(MRF * i);
ImSum := ImSum + A[i] * sin(MRF * i);
end;
ReSum := ReSum * 2 / N;
ImSum := ImSum * 2 / N;
for i := 0 to N - 1 do begin
A[i] := A[i] - ReSum * Cos(MRF * i) - ImSum * Sin(MRF * i);
Series2.Add(A[i]);
end;
← →
MBo © (2006-11-08 16:59) [14]Пардон, про гармоники не углядел...
← →
Jeer © (2006-11-08 17:42) [15]Можно так, на CIC-фильтрах:
Это комбинация интеграторов и дифференциаторов с цель получения решетчатой структуры АЧХ.
http://users.snip.net/~donadio/cic.pdf
http://www.xilinx.com/ipcenter/catalog/logicore/docs/cic.pdf
← →
DesWind © (2006-11-08 19:35) [16]Спасибо. Будем эксперементировать.
← →
Jeer © (2006-11-09 09:59) [17]DesWind © (08.11.06 19:35) [16]
Чтобы получить приемлимый результат, надо определится со спектрами полезного и мешающего сигналов, требованими по подавлению помехи и гармоник, быстродействию.
В общем случае, наши ответы весьма размыты.
В конце концов, можно решать задачу в лоб - использовать N режекторных фильтров, каждый на свою гармонику.
← →
DesWind © (2006-11-09 11:15) [18]
> Jeer © (09.11.06 09:59) [17]
Ну покрайней мере теперь знаю с чего начинать. )
← →
Jeer © (2006-11-09 11:32) [19]DesWind © (09.11.06 11:15) [18]
Опиши предметную область - будут более конкретные советы и помощь.
← →
DesWind © (2006-11-09 14:45) [20]Я лучше покажу http://www.webfile.ru/1184709 (GIF 13 кб). Помеха по характеру постоянна, и на длительном промежутке постоянна по частоте. Но частота может всеравно меняться. т.е. в программе должна быть "крутилка" для подстройки фильтра....
← →
DesWind © (2006-11-09 14:51) [21]Забыл добавить частота квантования 50 Гц, фильтрация в реальном времени.
← →
Jeer © (2006-11-09 15:38) [22]Сигнал вида уровнем 0/1 - это понятно.
Что является полезной информацией в сигнале:
- интервал между импульсами
- длительность импульсов
- число импульсов
- ?
Лучше выкладывать оцифровку в plaintext или wav, чтобы можно было определять количественные параметры сигнала.
Что является прикладной задачей, так и непонятно.
Восстановление формы логического сигнала ?
Вряд ли - см. выше о "полезности" сигнала.
Т.е. если сигнал является кодовым, то, в соответствии с принципами кодирования, строится декодер + подавитель помех.
Навскидку, для данного случая вполне достаточно примитивного ФНЧ (фильтр нижних частот) + компаратор уровня.
← →
Jeer © (2006-11-09 15:51) [23]http://www.webfile.ru/1184804
зеленый - зашумленный полезный сигнал
синий - сигнал после фильтрации
красный - после компаратора (смещен вверх для наглядности)
← →
DesWind © (2006-11-09 17:27) [24]Это позиционно-зависимый код. А как реализовать такой фильтр который на картинке? )
← →
Jeer © (2006-11-09 17:53) [25]В данном случае использован рекурсивный фильтр нижних частот второго порядка.
Рекурсивный фильтр 2-го порядка получаемый из звена второго порядка H(s) = Wa/(s^2+Wa^2) методом билинейного Z-преобразования
s= (2/T)*(1-Z^(-1))/(1+Z^(-1))
в виде разностного уравнения выглядит так:
y(i) = G*x(i)+b1*y(i-1)+b2*y(i-2)
где
T - период дискретизации
a = R/(2*L)
Wc = ((1/(L*C))-(R/(2*L)^2))^0.5
b1 = 2*exp(-a*T)*Cos(Wc*T)
b2 = -exp(-2*a*T)
G = (1/Wc)*(a/(L*C))*exp(-a*T)*Sin(Wc*T)
R,L,C - параметры контура (можно перейти от R к добротности)
Нерекурсивный фильтр еще проще:))
Это взвешенная сумма отсчетов
y(i) = sum (a(i)*x(i))
i = 0..N-1
В наиболее простом случае (проектирование методом частотной выборки)
коф-ты рассчитываются как коэф-ты Фурье умноженные на одну из оконных функций (Хемминга, Хариса, Блэкмана и тп)
Хемминг:
w(i) = 0.54 + 0.46*Cos(2*PI*i/(N-1))
← →
DesWind © (2006-11-10 14:17) [26]Большое спасибо за помощь!!!! Усе арбайтен!
← →
Jeer © (2006-11-10 15:23) [27]Ок.
Арбайтен - так арбайтен.
Но учти, инженер начинается с чистого листа бумаги и карандаша.
Когда к этому привыкнешь - пойдет все остальное.
Чего за девайс-то ?
На самом деле, я бы прикрутил аппаратный ФНЧ + компаратор на одном сдвоенном операционнике - делов. Декодирование - на тачке.
← →
DesWind © (2006-11-11 05:42) [28]Тяжело объяснить... Секрет не сектрет, но... Поставили задачу, обойтись минимальными средствами. "Декодирование на тачке" уже есть.
← →
DesWind © (2006-11-11 05:46) [29]Хотя, эт я ща так восторжено говорю, что получился чистый сигнал... Нада будеть посмотреть как там с декодированием, ведь фронты заваливаются... Видно будет в понедельник.
← →
DesWind © (2006-11-11 06:08) [30]
> Но учти, инженер начинается с чистого листа бумаги и карандаша.
> Когда к этому привыкнешь - пойдет все остальное.
не знаю что где начинается, но три листа чесно исписал
← →
Jeer © (2006-11-13 17:55) [31]DesWind © (11.11.06 05:46) [29]
Если еще интересует - лучшие результаты будут получены при использовании не очень избирательного, но "гладкого" фильтра Бесселя.
Судя по твоим "относительным" параметрам сигнала и помех - рекомендую рекурсивный НЧ-фильтр Бесселя 7-го порядка.
Кроме того, для повышения помехоустойчивости целесообразно использовать компаратор (не суть важно - программный или аппаратный) с гистерезисом.
Смещение (запаздывание) восстановленного сигнала от исходного не принципиально, т.к. сохраняется пропорциональность на всей наблюдаемой временной области.
см. результат:
http://www.webfile.ru/1190202
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2007.08.19;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.042 c