发布时间 : 星期二 文章数字信号处理实验报告3 DSP信号与系统实验报告 信号加窗及谱分析 电子科技大学 2018版更新完毕开始阅读
toc tic
X2 = dft(x2); toc
LINES = 2; ROWS = 1; ID = 0; STEP = 1; ID = ID+STEP; subplot(LINES,ROWS,ID) stem(X1)
ID = ID+STEP; subplot(LINES,ROWS,ID) stem(X2)
(3)利用MATLAB中提供的FFT函数,计算2个要求序列的DFT值,并调用MATLAB中提供的计算程序运行时间函数,对比与直接利用DFT定义式计算所花费的时间的程序。
直接调用理论上和上面的效果相同,只要把dft改成fft即可。但是时间上差距较大:
代码如下:
n = 0:255;
L = length(n);
Fs1 = 1;
x1 = cos(5*pi*n/16);
Fs2 = 25000;
x2 = square(2*pi*1000*n/Fs2,50); tic
X1 = fft(x1); toc tic
X2 = fft(x2); toc
LINES = 2; ROWS = 1; ID = 0; STEP = 1; ID = ID+STEP; subplot(LINES,ROWS,ID) stem(X1)
ID = ID+STEP; subplot(LINES,ROWS,ID) stem(X2)
(4)对要求的2个序列,分别采用不同的窗(Bartlett窗,Hann窗,Hamming窗和Blackman窗),利用FFT函数计算DFT值,对比其结果的程序。
直接调用理论上和上面的效果相同,只要把dft改成fft即可。
hold on grid on
n = 0:255; Fs = 1;
L = length(n);
x = cos(5*pi*n/16);
w1 = bartlett(L)'; w2 = hann(L)'; w3 = hamming(L)'; w4 = blackman(L)';
LINES = 5; ROWS = 2; ID = -1; STEP = 2; ID = ID+STEP; subplot(LINES,ROWS,ID) stem(x)
ID = ID+STEP; subplot(LINES,ROWS,ID) stem(x.*w1)
ID = ID+STEP; subplot(LINES,ROWS,ID) stem(x.*w2)
ID = ID+STEP; subplot(LINES,ROWS,ID) stem(x.*w3)
ID = ID+STEP; subplot(LINES,ROWS,ID) stem(x.*w4)
ID = 0;
ID = ID+STEP; subplot(LINES,ROWS,ID) fdtft(x,L,Fs)
ID = ID+STEP; subplot(LINES,ROWS,ID) fdtft(x.*w1,L,Fs)
ID = ID+STEP; subplot(LINES,ROWS,ID) fdtft(x.*w2,L,Fs)
ID = ID+STEP; subplot(LINES,ROWS,ID) fdtft(x.*w3,L,Fs)
ID = ID+STEP; subplot(LINES,ROWS,ID) fdtft(x.*w4,L,Fs)
(5)(拓展要求)分析利用上面的方法画出的信号频谱与理论计算出来的频谱