
实验日期室温报告日期成绩
报告内容:(目的和要求,原理,步骤,数据,计算,小结等)
实验三 离散傅立叶变换(DFT)
1.离散傅立叶级数
给定有限长序列[1 2 3 4],延拓为周期N=6的周期序列,并求其DFS。代码:
N1=6;x1=[1 2 3 4]; N2=length(x2); n1=0:5*N2-1;
x2=[x1,zeros(1,(6-length(x1)))];k=0:5*N2-
1;x3=x2(mod(n1,N2)+1) Xk=x3*exp(-j*2*pi/N1).^(n1'*k); subplot(321),stem(x1,'.');title('原序列')
subplot(322),stem(x3,'.');title('原序列周期延拓')
subplot(312),stem(Xk,'.');title('DFS')
subplot(325),stem(abs(Xk),'.');title('DFS模值')
subplot(326),stem(angle(Xk),'.');title('DFS相位')
结果:
2.求以下序列的N=16,32,点的快速傅立叶变换
x(n)=exp(-i*pi/8*n);x2(n)=cos(pi/8*n);x3(n)=sin(pi/8*n)
(1)代码:
Fs=20;
N1=16;n1=0:N1-1;xn1=exp(-i*pi/8*n1);D1=2*pi*Fs/N1;
N2=32;n2=0:N2-1;xn2=exp(-i*pi/8*n2);D2=2*pi*Fs/N2;
N3=;n3=0:N3-1;xn3=exp(-i*pi/8*n3);D3=2*pi*Fs/N3;
k1=floor(-(N1-1)/2:(N1-1)/2);k2=floor(-(N2-1)/2:(N2-1)/2); k3=floor(-(N3-1)/2:(N3-1)/2);
X1=fft(xn1,N1);X2=fft(xn2,N2);X3=fft(xn3,N3);
subplot(3,4,1);stem(n1,xn1);title('原信号');ylabel('C=16') subplot(3,4,2);stem(X1,'.');title('FFT结果X');
subplot(3,4,3);stem(k1*D1,abs(X1));title('X的模值'); subplot(3,4,4);plot(k1*D1,angle(X1));title('X的相位'); subplot(3,4,5);stem(n2,xn2);ylabel('C=32')
subplot(3,4,6);stem(X2,'.');
subplot(3,4,7);stem(k2*D2,abs(X2));
subplot(3,4,8);plot(k2*D2,angle(X2));
subplot(3,4,9);stem(n3,xn3);ylabel('C=')
subplot(3,4,10);stem(X3,'.');
subplot(3,4,11);stem(k3*D3,abs(X3));
subplot(3,4,12);plot(k3*D3,angle(X3));
结果:
(2)代码:
Fs=20;
N1=16;n1=0:N1-1;xn1=cos(pi/8*n1);D1=2*pi*Fs/N1;
N2=32;n2=0:N2-1;xn2=cos(pi/8*n2);D2=2*pi*Fs/N2;
N3=;n3=0:N3-1;xn3=cos(pi/8*n3);D3=2*pi*Fs/N3;
k1=floor(-(N1-1)/2:(N1-1)/2);k2=floor(-(N2-1)/2:(N2-1)/2); k3=floor(-(N3-1)/2:(N3-1)/2);
X1=fft(xn1,N1);X2=fft(xn2,N2);X3=fft(xn3,N3);
subplot(3,4,1);stem(xn1,'.');title('原信号');ylabel('C=16'); axis([0,18,1.1*min(xn1),1.1*max(xn1)]);
subplot(3,4,2);stem(X1,'.');title('FFT结果X');
subplot(3,4,3);stem(abs(X1),'.');title('X的模值');
axis([0,18,1.1*min(abs(X1)),1.1*max(abs(X1))]);
subplot(3,4,4);stem(angle(X1),'.');title('X的相位');axis([0,18,1.1*min(angle(X1)),1.1*max(angle(X1))]); subplot(3,4,5);stem(xn2,'.');ylabel('C=32');
axis([-2,35,1.1*min(xn2),1.1*max(xn2)]);
subplot(3,4,6);stem(X2,'.');
subplot(3,4,7);stem(abs(X2),'.');
axis([0,35,1.1*min(abs(X2)),1.1*max(abs(X2))]); subplot(3,4,8);stem(angle(X2),'.');
axis([0,35,1.1*min(angle(X2)),1.1*max(angle(X2))]); subplot(3,4,9);stem(xn3,'.');ylabel('C=');
axis([-2,70,1.1*min(xn3),1.1*max(xn3)]);
subplot(3,4,10);stem(X3,'.');
subplot(3,4,11);stem(abs(X3),'.');
axis([0,70,1.1*min(abs(X3)),1.1*max(abs(X3))]); subplot(3,4,12);stem(angle(X3),'.');
axis([0,70,1.1*min(angle(X3)),1.1*max(angle(X3))]);结果:
(3)代码:
Fs=20;
N1=16;n1=0:N1-1;xn1=sin(pi/8*n1);D1=2*pi*Fs/N1;
N2=32;n2=0:N2-1;xn2=sin(pi/8*n2);D2=2*pi*Fs/N2;
N3=;n3=0:N3-1;xn3=sin(pi/8*n3);D3=2*pi*Fs/N3;
k1=floor(-(N1-1)/2:(N1-1)/2);k2=floor(-(N2-1)/2:(N2-1)/2); k3=floor(-(N3-1)/2:(N3-1)/2);
X1=fft(xn1,N1);X2=fft(xn2,N2);X3=fft(xn3,N3);
subplot(3,4,1);stem(xn1,'.');title('原信号');ylabel('C=16') axis([0,18,1.1*min(xn1),1.1*max(xn1)]);
subplot(3,4,2);stem(X1,'.');title('FFT结果X');
axis([0,18,-1.1*max(abs(X1)),1.1*max(abs(X1))]);
subplot(3,4,3);stem(abs(X1),'.');
axis([0,18,1.1*min(abs(X1)),1.1*max(abs(X1))]);title('X的模值');
subplot(3,4,4);stem(angle(X1),'.');
axis([0,18,1.1*min(angle(X1)),1.1*max(angle(X1))]);title('X 的相位');
subplot(3,4,5);stem(xn2,'.');ylabel('C=32')
axis([0,35,1.1*min(xn2),1.1*max(xn2)]);
subplot(3,4,6);stem(X2,'.');
axis([0,35,-1.1*max(abs(X2)),1.1*max(abs(X2))]);
subplot(3,4,7);stem(abs(X2),'.');
axis([0,35,1.1*min(abs(X2)),1.1*max(abs(X2))]);
subplot(3,4,8);stem(angle(X2),'.');
axis([0,35,1.1*min(angle(X2)),1.1*max(angle(X2))]);
subplot(3,4,9);stem(xn3,'.');ylabel('C=')
axis([0,70,1.1*min(xn3),1.1*max(xn3)]);
subplot(3,4,10);stem(X3,'.');
axis([0,70,-1.1*max(abs(X3)),1.1*max(abs(X3))]);
subplot(3,4,11);stem(abs(X3),'.');
axis([0,70,1.1*min(abs(X3)),1.1*max(abs(X3))]);
subplot(3,4,12);stem(angle(X3),'.');
axis([0,70,1.1*min(angle(X3)),1.1*max(angle(X3))]);
结果:
3.利用DFT计算线性卷积
给定序列x1(n)=0.9^n,n=[0:11];h(n)=R9(n) 求x1(n)*h(n);x1(n)与h(n)的10点圆周卷积。
代码:
n1=[0:9];n2=[0:11];m=0:N1-1;n=[0:N1-1]N=12;N1=10;x1=0.9.^n2;
x11=0.9.^n1;x2=ones(1,9);x3=conv(x1,x2)
x5=[x11,zeros(1,N1-length(x11))];
x6=[x2,zeros(1,N1-length(x2))];
H=zeros(N1,N1);
x6=[x6 zeros(1,N1-length(x6))];
for n=1:N1
H(n,:)=x6(mod(n-m-1,N1)+1);
end
x4=x5*H';subplot(221),stem(x1,'.');title('原序列x1')
axis([-1,14,0.6*min(x1),1.1*max(x1)]);
subplot(222),stem(x2,'.');title('原序列x2')
axis([-1,11,0,1.1*max(x2)]);
subplot(223),stem(x3,'.');title('x1卷积x2')
axis([-1,25,1.1*min(x3),1.1*max(x3)]);
subplot(224),stem(x4,'.');title('x1 10点圆周卷积x2') axis([-1,15,0.975*min(x4),1.01*max(x4)]);
结果:
