当前位置:文档之家› 数字信号处理实验报告讲解

数字信号处理实验报告讲解

数字信号处理实验报告讲解
数字信号处理实验报告讲解

实验报告

实验一:

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');

相关主题
文本预览
相关文档 最新文档