x=[1,1,1,1];w=[0:1:500]*2*pi/500;
[H]=freqz(x,1,w);
magH=abs(H);phaH=angle(H);
subplot(2,1,1);plot(w/pi,magH);grid;xlabel('');ylabel('|X|'); title('DTFT的幅度')
subplot(2,1,2);plot(w/pi,phaH/pi*180);grid;
xlabel('以pi为单位的频率');label('度');
title('DTFT的相角')
N=4;w1=2*pi/N;k=0:N-1;
X=fft(x,N);
magX=abs(X);phaX=angle(X)*180/pi;
subplot(2,1,1);plot(w*N/(2*pi),magH,'--');axis([-0.1,4.1,0,5]);hold on; stem(k,magX);ylabel('|X(k)|');title('DFT的幅度:N=4');text(4.3,-1,'k'); hold off;
subplot(2,1,2);plot(w*N/(2*pi),phaH*180/pi,'--');axis([-0.1,4.1,-200,200]); hold on;
stem(k,phaX);ylabel('度');title('DFT的相角:N=4');text(4.3,-200,'k')
n=(0:1:9);x=cos(0.48*pi*n)+cos(0.52*pi*n);
w=[0:1:500]*2*pi/500;
X=x*exp(-1i*n'*w);
magx=abs(X);
x1=fft(x);magx1=abs(x1(1:1:10));
k1=0:1:9;w1=2*pi/10*k1;
subplot(3,1,1);stem(n,x);title('signalx(n),0<=n<=9');
axis([0,10,-2.5,2.5]);line([0,10],[0,0]);
subplot(3,1,2);plot(w/pi,magx);title('DTFT幅度');xlabel('w');axis([0,1,0,10]); subplot(3,1,3);stem(w1/pi,magx1);title('DFT幅度');
xlabel('频率(单位:pi)');axis([0,1,0,10])
实验总结:补零运算提供了一个较密的频谱和较好的图示形式,但因为在信号中只是附加了零,而没有增加任何新的信息,因此不能提供高分辨率的频谱。
n=(0:1:9);x=cos(0.48*pi*n)+cos(0.52*pi*n);
w=(0:1:500)*2*pi/500; %0-2*pi区域分为501点
X=x*exp(-1i*n'*w); %内部的矩阵维数必须一致
magx=abs(X);
x1=fft(x);magx1=abs(x1(1:1:10));
k1=0:1:9;w1=2*pi/10*k1;
subplot(3,1,1);stem(n,x);title('signalx(n),0<=n<=9');
axis([0,10,-2.5,2.5]); % axis([xmin xmax ymin ymax])
line([0,10],[0,0]);
subplot(3,1,2);plot(w/pi,magx);title('DTFT幅度');xlabel('w');axis([0,1,0,10]); subplot(3,1,3);stem(w1/pi,magx1);title('DTFT幅度');
xlabel('频率(单位:pi)');axis([0,1,0,10])
n=[0:1:9]; y=cos(0.48*pi*n)+cos(0.52*pi*n);
n1=[0:1:99]; x=[y(1:1:10),zeros(1,90)];
subplot(3,1,1);
stem(n1,x);
title('x(n) (0<=n<=9+90zeros'); xlabel('n');
axis([0,100,-2.5,2.5]); % axis([xmin xmax ymin ymax]) line([0,100],[0,0]);
w=[0:1:500]*2*pi/500; %0-2*pi区域分为501点
x1=fft(x);magx1=abs(x1(1:1:51));
x=x*exp(-j*n1'*w); magx=abs(x);
k1=[0:1:50]; w1=2*pi/100*k1;
subplot(3,1,2); plot(w/pi,magx); title('DTFT'); xlabel('w');
axis([0,1,0,10]); subplot(3,1,3);stem(w1/pi,magx1);
title('X(K)');xlabel('frequency in pi units'); axis([0,1,0,10]);
题目7-5.3、
n=[0:1:99];x=cos(0.48*pi*n)+cos(0.52*pi*n);
subplot(3,1,1);
stem(n,x);title('x(n) (0<=n<=99'); xlabel('n');
axis([0,100,-2.5,2.5]); %axis([xmin xmax ymin ymax]) line([0,100],[0,0]);
w=[0:1:500]*2*pi/500; %0-2*pi区域分为501点
x1=fft(x); magx1=abs(x1(1:1:50));
x=x*exp(-j*n'*w); magx=abs(x);
k1=0:1:49; w1=2*pi/100*k1;
subplot(3,1,2); plot(w/pi,magx); title('DTFT'); xlabel('w');
axis([0,1,0,55]); subplot(3,1,3); stem(w1/pi,magx1);
title('X(K)'); xlabel('frequency in pi units'); axis([0,1,0,55]);
题目7-5.4、
n=[0:1:127];x=cos(0.48*pi*n)+cos(0.52*pi*n);
subplot(3,1,1); stem(n,x);
title('x(n) (0<=n<=127'); xlabel('n');
axis([0,127,-2.5,2.5]); % axis([xmin xmax ymin ymax])
line([0,100],[0,0]);
w=[0:1:500]*2*pi/500; %0-2*pi区域分为501点
x1=fft(x);magx1=abs(x1(1:1:64));
x=x*exp(-j*n'*w); magx=abs(x); k1=0:1:63;
w1=2*pi/128*k1;
subplot(3,1,2); plot(w/pi,magx); title('DTFT');xlabel('w'); axis([0,1,0,70]);subplot(3,1,3); stem(w1/pi,magx1);
title('X(K)'); xlabel('frequency in pi units');
axis([0,1,0,70]);
实验总结:物理分辨率低与频谱的混叠有关,而频谱的混叠正是由截断造成的。
若由两个不同频率的周期余弦信号组合的x(n),仍是一个周期余弦信号的话,其新周期N0=2*pi/w’,w’=|w2-w1|,当N0>Np 时,必有信息损失,导致频谱混叠,严重的就无法分辨原有谱峰,本例中周期N=50,所以n’>=50. 因而图(1),(2)中都出现了频谱混叠。
要改变频谱分辨率,就必须加宽截断函数的时宽Np,图(3),(4)都做到了这一点,因而都有效的克服了频谱混叠效应。
在数据长度Np一定的情况下,尽管可在x(n)后面加零,改变频谱的频率取样间隔,但改变的仅是频谱的频率取样密度,而无法改变频率分辨率,这一点从图(2)中可以看出来。