我已经阅读了很多有关此内容的文章,但是还无法成功地将所有内容组合在一起,因此我正在寻求帮助。

我需要从信号中滤除50 Hz。似乎最好的选择是陷波滤波器或LMS滤波器,但是我没有噪声的副本,因此陷波滤波器似乎是最佳选择。

我没有我需要将频率标准化,因为我知道采样频率(16kHz),持续时间为30秒。带宽可以相当紧,49.5Hz〜50.5Hz应该可以。

我需要结合使用filteriirnotch,但是我不确定如何做到。

如果有人可以将所有这些放在一起,我将不胜感激。谢谢。

评论

我想问一下阻尼/ redaman上的自回归滤波器仿真如何?

如何在上述程序中定义“ x”(其中“ x”是信号输入)...谢谢

#1 楼

我不确定iirnotch会做什么,但这是手工设计陷波滤波器的方法。

fs = 20000;             % sampling rate
f0 = 50;                % notch frequency
fn = fs/2;              % Nyquist frequency
freqRatio = f0/fn;      % ratio of notch freq. to Nyquist freq.

notchWidth = 0.1;       % width of the notch

% Compute zeros
notchZeros = [exp( sqrt(-1)*pi*freqRatio ), exp( -sqrt(-1)*pi*freqRatio )];

% Compute poles
notchPoles = (1-notchWidth) * notchZeros;

figure;
zplane(notchZeros.', notchPoles.');

b = poly( notchZeros ); %  Get moving average filter coefficients
a = poly( notchPoles ); %  Get autoregressive filter coefficients

figure;
freqz(b,a,32000,fs)

% filter signal x
y = filter(b,a,x);


评论


$ \ begingroup $
简单而优雅。我知道notchWidth越小,槽口的宽度就会越小,但是notchWidth与具体数量有关吗?
$ \ endgroup $
–洛洛(Lolo)
16 Mar 9 '16 at 3:06

$ \ begingroup $
@Lolo我认为不是。我刚选择它是因为它似乎是一个方便的数字。
$ \ endgroup $
– Phonon
16 Mar 9 '16 at 4:25

#2 楼

您可以只键入help iirnotch,然后查看以下示例:

% Design a filter with a Q-factor of Q=35 to remove a 60 Hz tone from 
% system running at 300 Hz.
Wo = 60/(300/2);  BW = Wo/35;
[b,a] = iirnotch(Wo,BW);  


如果用50 Hz替换60,然后执行:

Y = filter(b,a,X)


它应该可以工作(使用X的数据)