DSP数字信号处理实验报告 - 图文

发布时间 : 星期二 文章DSP数字信号处理实验报告 - 图文更新完毕开始阅读

信号同上,加矩形窗。时域采样点数分别取L?10,L?20,L?40,L?100。 画出以上各种时长情况下,频域采样点数分别为N?32,N?64时的DFT(在同一个图上用虚线画出相应的DTFT频谱,用于比较)。

离散频谱DFT和连续频谱DTFT有什么关系?L一定的情况下,能否通过增加N改善频率的物理分辨率?N的作用是什么?

实验过程与结果: 实验程序:

%================ % Problem 1

%================

% ------- Plot waveform and spectrum of the windows figure,L=10; windows_spectrum(L,[2 2 1 2 2 2]) L=20; windows_spectrum(L,[2 2 3 2 2 4])

figure,L=40; windows_spectrum(L,[2 2 1 2 2 2]) L=100; windows_spectrum(L,[2 2 3 2 2 4])

% ------ plot the signal's spectrum ------------- L=100;

x=cos(0.4*pi*(0:(L-1)))+cos(0.5*pi*(0:(L-1)))+cos(0.6*pi*(0:(L-1))); L=10; figure,windowed_spectrum(x(1:L),[2 2 1 2 2 2]) L=20; windowed_spectrum(x(1:L),[2 2 3 2 2 4])

L=40; figure,windowed_spectrum(x(1:L),[2 2 1 2 2 2]) L=100; windowed_spectrum(x(1:L),[2 2 3 2 2 4])

%================ % Problem 2

%================

L=10; figure,windowed_dft_spectrum(x(1:L),[2 2 1 2 2 2]) L=20; windowed_dft_spectrum(x(1:L),[2 2 3 2 2 4])

L=40; figure,windowed_dft_spectrum(x(1:L),[2 2 1 2 2 2]) L=100; windowed_dft_spectrum(x(1:L),[2 2 3 2 2 4])

子程序1:

function []=windowed_dft_spectrum(x,a); L=length(x);

W1=abs(fft(x,1024)); omega=(0:1023)*2/1024; N=32;

kk=2/N*(0:N-1);

if N>=L, dft=abs(fft(x,N)); else dft=zeros(N,1);

for k=1:N, dft(k)=sum(x(:)'*exp(-j*2*pi/N*(k-1)*(0:L-1)')); end

end

subplot(a(1),a(2),a(3)),plot(omega,W1,':'),hold on,stem(kk,abs(dft),'r.'),

xlabel('\\omega(\\pi)'),axis([0 2 0 50]),title(['L=',num2str(L),', N=',num2str(N)])

N=64;

kk=2/N*(0:N-1);

if N>=L, dft=abs(fft(x,N)); else dft=zeros(N,1);

for k=1:N, dft(k)=sum(x(:)'*exp(-j*2*pi/N*(k-1)*(0:L-1)')); end end

subplot(a(4),a(5),a(6)),plot(omega,W1,':'),hold on,stem(kk,abs(dft),'r.')

xlabel('\\omega(\\pi)'),axis([0 2 0 50]),title(['L=',num2str(L),', N=',num2str(N)])

子程序2:

function windowed_spectrum(x,a) L=length(x); w=hamming(L);

W1=abs(fft(x,1024)); W2=abs(fft(x.*w',1024)); omega=(0:1023)*2/1024;

subplot(a(1),a(2),a(3)),plot(omega,W1),xlabel('\\omega(\\pi)'),axis([0 2 0 50]) title(['X(w) with rectangular window, L=',num2str(L)]),grid on

subplot(a(4),a(5),a(6)),plot(omega,W2),xlabel('\\omega(\\pi)'),axis([0 2 0 50]) title(['X(w) with Hamming window, L=',num2str(L)]),grid on

子程序3:

function windows_spectrum(L,a)

rect=rectwin(L); % rectangular window hamm=hamming(L); % Hamming window

w=2*pi/1024*(-511:512); % discreted frequency W1=fft(rect,1024); W1=abs(fftshift(W1)); W2=fft(hamm,1024); W2=abs(fftshift(W2));

subplot(a(1),a(2),a(3)),hold on,plot(1:L,rect,'bo',1:L,hamm,'r*'),stem(1:L,rect),axis([1 L -0.5 2]), xlabel('n'),title(['L=',num2str(L),' (waveform)']),legend('rectangular','Hamming')

subplot(a(4),a(5),a(6)),plot(w/pi,abs(W1),w/pi,abs(W2),'r'),xlabel('\\omega(\\pi)'),title(['L=',num2str(L), ' (Magnitude spectrum)']) legend('rectangular','Hamming')

实验结果:

一、观察窗函数的影响。

(1) 写出x(n)(???n???)的频谱X(?)

X(?)?2?[?(??0.4?)??(??0.5?)??(??0.6?)]

250020001500|X(?)|1000500000.10.20.30.40.50.60.70.80.91?(?)

(2) 分别画出窗长度 L?10,L?20,L?40,L?100的矩形窗频谱和Hamming窗频谱。

(3) 时域采样点数分别取L?10,L?20,L?40,L?100, 分别画出x(n)加矩形窗及加Hamming窗时DTFT频谱X(?)

联系合同范文客服:xxxxx#qq.com(#替换为@)