数字信号处理实验报告讲解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
实验一:
1.用三种不同的DFT程序计算x(n)=R8(n)的傅里叶变换;比较三种程序计算机运行时间。
(1)编制用for loop语句的M函数文件dft1.m,用循环变量逐点计算X(k);
(2)编写用Matlab矩阵运算的M函数文件dft2.m,完成下列矩阵运算;
(3)调用FFT库函数,直接计算X(k);
(4)编写M程序文件,分别得到序列x(n)的傅里叶变换,并画出相应的幅频和相频特性;
比较用三种不同方式编写的DFT程序各自的计算机运行时间。
%%%主程序:x=[ones(1,8),zeros(1,248)];
t=cputime;
[Am1,pha1]=dft1(x);
t1=cputime-t;
n=[0:(length(x)-1)];
w=(2*pi/length(x))*n;
figure(1);
subplot(2,1,1);
plot(w,Am1,'b');
title('Magnitude part');
xlabel('frequency in radians');
ylabel('|X(exp(jw))|');
subplot(2,1,2), plot(w,pha1,'r');grid;
xlabel('frequency in radians');
ylabel('arg(X[exp(jw)]/radians|');
%%%%子程序dft1.m
function [Am,pha]=dft1(x)
N=length(x);
w=exp(-j*2*pi/N);
for k=1:N
sum=0;
for n=1:N
sum=sum+x(n)*w^((k-1)*(n-1));
end
Am(k)=abs(sum);
pha(k)=angle(sum);
End
%%%%子程序dft2.m
function[Am,pha]=dft2(x)
N=length(x);
n=[0:N-1];
k=[0:N-1];
w=exp(-j*2*pi/N);
nk=n'*k;
wnk=w.^(nk);
Xk=x*wnk;
Am=abs(Xk);
pha=angle(Xk);
%%%%子程序dft3.m
function[Am,pha]=dft3(x)
Xk=fft(x);
Am=abs(Xk);
pha=angle(Xk);
运行结果:
t1 =0.1563 t2 =0.2969 t3 =0
2.用DFT实现两序列的卷积运算,并研究DFT点数与混迭的关系
给定:x(n)=n*R16(n),h(n)=R8(n),用FFT和IFFT分别求线性卷积及混叠结果的输出,画出相应的图形(用stem(n,y)).
N=16;
x=[0:N-1];
h=ones(1,8);
Xk1=fft(x,23); %做23点fft
Hk1=fft(h,23);
Yk1=Xk1.*Hk1;
y1=ifft(Yk1);
n=0:22;
figure(1)
stem(n,y1);
Xk2=fft(x);
Hk2=fft(h,16); %做16点fft
Yk2=Xk2.*Hk2;
y2=ifft(Yk2);
n=0:15;
figure(2)
stem(n,y2)
3.高密度频谱与高分辨率频谱的研究
对连续信号)1000*9*2cos()1000*7*2cos()1000*5.6*2cos()(t t t t x a πππ++=以fs=32kHz 对x a (t)采样:
1) 做N=16点的采样 和 补零到256点的频谱;
2) 做N=256点的采样,并做出其FFT 幅度特性;做出分析。
fs=32000; %采样频率
N=16; %采集16点
n=0:N-1; %做16点DFT
xa=cos(2*pi*6.5*10^3*n/fs)+cos(2*pi*7*10^3*n/fs)+cos(2*pi*9*10^3*n/fs);
[Am1,pha1]=dft3(xa);
n=[0:(length(xa)-1)];
w=(2*pi/length(xa))*n;
figure(1)
plot(w,Am1,'b'); grid;
title('Magnitude part');
xlabel('frequency in radians');
ylabel('|X(exp(jw))|');
x=[xa(1:16),zeros(1,240)]; %补零到256
[Am2,pha2]=dft2(x); %做256点DFT
n=[0:(length(x)-1)];
w=(2*pi/length(x))*n;
figure(2)
plot(w,Am2,'b'); grid;
title('Magnitude part');
xlabel('frequency in radians');
ylabel('|X(exp(jw))|');
N0=256; %采集256点
n0=0:N0-1; %做256点DFT
xa0=cos(2*pi*6.5*10^3*n0/fs)+cos(2*pi*7*10^3*n0/fs)+cos(2*pi*9*10^3*n0/fs); [Am3,pha3]=dft3(xa0);
n=[0:(length(xa0)-1)];
w=(2*pi/length(xa0))*n;
figure(3)
plot(w,Am3,'b'); grid;
title('Magnitude part');
xlabel('frequency in radians');
ylabel('|X(exp(jw))|');