|
Возьмите напрмер вот такой скрипт в матлабе, и увидите, что 50 герцовый сигнал и несколько его гармоник вполне хорошо заметны на фоне шумов (в самом начале графика СПМ). А вот насчет "измерять" - ну это зависит от того с какой точностью вы хотите измерить. А то и не выйдет. Скорее речь об обнаружении.
Тогда первый алгоритм по точности - наверное узкополосный фильтр (что советовал mse) чтобы по максимуму вырезать малый кусок спектра, и каким-то другим методом оценка шума (например среднее из периодограммы не считая основных запчастей от 50 герц). С последующим вычитанием замеренного шума из общего попавшего в полосу сигнала.
Менее точно - все взять сразу из периодограммы. Но один ее "канал" не будет узкополосен. Зато можете взять не одну, а несколько нечетных гармоник сигнала.
Алгоритм фильтрации - любой понравившийся цифровой фильтр. Как посчитать СПМ - метод Уэлча (Welch) например (основан на БПФ).
fs=8192; N=2048;
n=9.*(rand(1,N)-0.5);
t=1:N;
s=sin(2*pi*50/fs.*t);
s(find(s>0.9))=1;
s(find(s<=0.9))=-1;
s=s.*1.5;
pwelch(s+n,hamming(512),[],512,fs);
E-mail: info@telesys.ru