Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.08.19;
Скачать: CL | DM;

Вниз

Подавление частоты.   Найти похожие ветки 

 
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 вся ветка

Текущий архив: 2007.08.19;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.03 c
2-1185136869
ReW
2007-07-23 00:41
2007.08.19
Цветовой Ключ


2-1184836629
copron
2007-07-19 13:17
2007.08.19
Занят ли файл программой?


6-1167988304
magics
2007-01-05 12:11
2007.08.19
Прокси сервер


15-1184841211
Один
2007-07-19 14:33
2007.08.19
Вопрос


6-1168162326
_darksidenv
2007-01-07 12:32
2007.08.19
Winsock API и accept