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

Вниз

помогите пожалуйста с фильтрами!!!   Найти похожие ветки 

 
belpyro ©   (2004-11-08 21:21) [0]

Уважаемые мастера!
У меня возникла такая проблема:
есть сигнал состоящий из комбинации трех частот в достаточно низкочастотной области - сотни герц (435, 500, 555, 625, 705, 795, 900). Необходимо достаточно четко их определить (это команды телеуправления усилительной станцией), чтобы определить какая команда пришла на вход звуковой карты компьютера. Может вы подскажете существуют ли методы программного определения либо спец компоненты для Делфи типа частотомера? и как это можно реализовать? Использовал компоненты MMtools, но существующий там фильтр не обеспечивает узкую полосу пропускания (десятки герц). Помогите если знаете, пожалуйста!
С уважением!
belpyro


 
Jel ©   (2004-11-08 22:36) [1]

ИМХО должно помочь быстрое преобразование Фурье (FFT) помучай поисковики на эту тему.


 
programania ©   (2004-11-09 01:01) [2]

Попробуйте умножить сигнал на SIN или/и COS этих частот
и просуммировать произведения,
на какой частоте синусоиды максимум, та частота и пришла.


 
Jeer ©   (2004-11-09 10:04) [3]

Алгоритм Герцеля - разновидность ДПФ.
Используется в тоновом декодировании DTMF.

function Goertzel(Buffer:array of double; frequency, samplerate: double):double;
var
 Qkn, Qkn1, Qkn2, Wkn, Mk : double;
 i : integer;
begin
Qkn:=0; Qkn1:=0;
Wkn:=2*PI*frequency/samplerate;
Mk:=2*Cos(Wkn);
for i:=0 to (Length(Buffer)-1) do begin
  Qkn2 := Qkn1; Qkn1 := Qkn;
  Qkn  := Buffer[i] + Mk*Qkn1 - Qkn2;
end;
Result := sqrt(Qkn*Qkn + Qkn1*Qkn1 - Mk*Qkn*Qkn1);
end;

Или использовать узкополосные нерекурсивные цифровые фильтры.

В любом случае предварительно сделать расчет по полосе исходя из требований (уровень, нестабильность, помехи)



Страницы: 1 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.024 c
1-1107354569
aleks-ran
2005-02-02 17:29
2005.02.20
Значения Low и High в многомерных динамических массивах


1-1107763970
СержК
2005-02-07 11:12
2005.02.20
Как удалить папку


14-1107241627
Franzy
2005-02-01 10:07
2005.02.20
Русификация win2000en


14-1106805956
Внук
2005-01-27 09:05
2005.02.20
Нобелевские соискатели


1-1107432911
Павел
2005-02-03 15:15
2005.02.20
Компоненты для работы с регулярными выражениями