Matlab 无法正确执行频域窗口?
我试图通过卷积sinc信号(蓝色)和升余弦窗口(1+0.5*cos())的脉冲响应来执行频域加窗 我在下面附上了相同的代码。任何帮助都将不胜感激Matlab 无法正确执行频域窗口?,matlab,frequency,windowing,Matlab,Frequency,Windowing,我试图通过卷积sinc信号(蓝色)和升余弦窗口(1+0.5*cos())的脉冲响应来执行频域加窗 我在下面附上了相同的代码。任何帮助都将不胜感激 n0=0; w=0.5; N=64; Ncap=5*N; L=Ncap/N; n=(-Ncap/2:(Ncap/2)-1); Ws=N/Ncap; s=sinc(Ws.*(n+n0)); test_FIR=[0.5 0 0 0 0 1 0 0 0 0 0.5]; conv_out= (conv(test_FIR,s)/max(co
n0=0;
w=0.5;
N=64;
Ncap=5*N;
L=Ncap/N;
n=(-Ncap/2:(Ncap/2)-1);
Ws=N/Ncap;
s=sinc(Ws.*(n+n0));
test_FIR=[0.5 0 0 0 0 1 0 0 0 0 0.5];
conv_out= (conv(test_FIR,s)/max(conv(s,test_FIR)));
figure(2)
plot(s,)
hold on
plot(conv_out,'k','LineWidth',2)
对于你继续进行的方式,结果是意料之中的。您正在绘制的是
s
(它有320个双精度)以及conv\u out
,它有330个元素(因为卷积的结果将比您卷积的每个向量的元素数总和少一个,即320和11)
由于您正在根据元素的位置绘制两个向量,因此与s
相比,conv_out
移位是很正常的(因为它们的长度不同)。您需要的是正确选择用于打印的x轴。所以,试着找出什么是正确的x轴