有人可以帮我理解下面我出错的地方吗?我正在使用mfilt.firinterp使用截止值为0.7 *(fs / 2)的滤波器将正弦波插值4倍。正弦波的频率为0.1Hz,我的采样频率为10Hz。因此,用于内插的低通滤波器具有3.5Hz的截止频率,并且应该容易地通过该信号。我必须做一些基本的错误。
如果我将截止值设置为0.25 * fs / 2,一切看起来都很好。但这是否意味着频率含量略高于0.25 * fs / 2(如0.4 * fs / 2)的信号无法线性解释(或者,如何实现这一点?)。
等一下,我是否混淆旧的fs和新的fs?如果fs = fs_new = 40Hz,那么我可以理解发生了什么。如果我将截止值设置为0.25 * fs_new / 2,其中fs_new = 40Hz,则有意义的是这是10 Hz的上截止频率(原始采样率)。因此,fircls1(95,Wn,0.01,0.0001)中的Wn必须<= 0.25。听起来不错吗?
提前感谢任何评论。
% create input
told = (0:1:299)/10; % time index for plotting xold
tnew = (0:1:1199)/40; % time index for plotting xnew
xold = sin(2*pi*0.1*told + 1); % fc=0.1Hz (Pc=10 sec); samplerate = fs = 10Hz
% create filter
num = fircls1(95, 0.7, 0.01, 0.0001); % set filter cutoff to 0.7*(fs/2)=3.5Hz
Hm = mfilt.firinterp(4,num);
% apply filter
xnew = 4*filter(Hm, xold);
% plot results
plot(told, xold, 'bo', tnew, xnew, 'r+');
title('Input (blue) and filtered input (red) versus time index');
答案 0 :(得分:2)
我想出了我的错误理解......在使用fircls1(n,Wn,ripple_passband,ripple_stopband)时,我对Wn参数感到困惑。当将此函数与Matlab的函数mfilt.firinterp(l,num)结合使用时,应将Wn视为标准化为新采样频率的截止频率(而不是OLD采样频率,因此我的混淆)。
因此,当使用mfilt.firinterp进行四次插值(即l = 4)时,Wn必须为0.25或更小以避免混叠(如果Wn> 0.25则图像重叠)。
在上面的例子中,我试图使用Wn = 0.7,但实际上我应该使用的是Wn = 0.7 * 0.25,这是&lt; 0.25。
答案 1 :(得分:0)
有趣的问题(upvoted和favourited)但我无法提供帮助,因为我无法访问过滤器设计工具箱。你可以在这里粘贴这个问题更幸运:
http://www.mathworks.com/matlabcentral/newsreader/
抱歉,祝你好运!