数字信号处理实验报告-西工大

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字信号处理实验报告

班级:11021302 姓名:蔡欣麟学号:2013302736、

实验一

实验目的

(1)巩固并进一步加深对阶跃响应,单位抽样响应,幅频响应,相频响应以及Parseval定理的理解。

(2)学习并熟练掌握用FFT对连续信号和时域离散信号进行谱分析的方法。

实验内容

2.17 给定系统H(Z)=−0.2Z/(Z2+0.8)。

(1)求出并绘出H(Z)的幅频响应与相频响应;

(2)求出并绘出该系统的单位抽样响应h(n);

(3)令x(n)=u(n),求出并绘出系统的单位阶跃响应。

3.22关于正弦信号抽样的实验研究。

给定信号x(t)=sin(2πf0t),f0=50Hz,现对x(t)抽样,设抽样点数N=16。我们知道正弦信号x(t)的频谱是在±f0处的δ函数,将x(t)抽样变成x(n)后,若抽样频率及数据长度N取得合适,那么x(n)的DFT 也应是在±50Hz处的δ函数。由Parseval定理,有

E t=∑x2(n)=

N−1

n=02

N

|X50|2=E f

X50表示x(n)的DFTX(k)在50Hz处的谱线,若上式不成立,说明X(k)在频域有泄漏。给定下述抽样频率:(1)f s=100Hz;(2)f s=150Hz;(3)f s=200Hz。试分别求出x(n)并计算其X(k),然后用Parseval 定理研究其泄露情况,请观察得到的x(n)及X(k),总结对正弦信号抽样应掌握的原则。

3.23对上机习题3.22,当去取f s=200Hz,N=16时,在抽样点后再补N个零得x′(n),这时x′(n)是32点序列,求x′(n)的DFTX′(k),分析对正弦信号补零的影响。

程序设计

习题2.17:

x=ones(100);

t=1:100;

b=[0,-0.2,0];

a=[1,0,0.8];

[h,t1]=impz(b,a,40);%求单位抽样响应

y=filter(b,a,x);%求阶跃响应

[H,w]=freqz(b,a,256,'whole',1);

Hr=abs(H);%求幅频响应

Hphase=angle(H);

Hphase=unwrap(Hphase);%求相频响应

习题3.22:

f0=50;%固有频率

fs=100:50:200;%抽样频率

N=16;%数据个数

for q=1:3

Et(q)=0;%初始化时域能量

for k=1:N

x(k)=sin(2*pi*f0*(k-1)/fs(q));%计算x(n)

Et(q)=Et(q)+x(k)^2;%计算时域能量

end

X=fft(x,N);%计算DFT

X=abs(X);%得到X(k)

Ef(q)=2*(X(round(N*f0/fs(q))+1)^2)/N;%计算Ef

fprintf('当fs=%dHZ时',fs(q));%输出抽样频率if max(x)>1e-6%判断x(k)是否恒等于0

if Et(q)-Ef(q)>1e-6%判断能量是否守恒

disp('泄漏');

else

disp('不泄漏');

end

else

disp('抽样无意义');

end

end

习题3.23:

N=16;%数据个数

for k=1:N

x(k)=sin(2*pi*f0*(k-1)/fs);%计算x(n) end

t=0:N-1;

X=fft(x,N);%计算x(n)的DFT

X=abs(X);%得到X(k)

x1=[x,zeros(1,N)];%信号补零得到x1(n) t1=0:2*N-1;

X1=fft(x,2*N);%计算x1(n)的DFT

X1=abs(X1);%得到X1(k)

实验结果

习题2.17

习题3.22

习题3.23

实验二

实验目的

(1)进一步加深DFT算法原理和基本性质的理解:包括能量守恒,循环卷积。

(2)熟悉FFT程序结构及编程方法。学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。

实验内容

(1)编程实现快速傅里叶算法。

(2)已知序列x(n)=2sin(πn/3)+3cos(0.25πn),0≤n≤127,试绘制x(n)及用自己的快速傅里叶算法和matlab现有算法分别实现它的离散傅里叶变换谱图。

(3)验证能量守恒定理,并用DFT计算线性卷积:h(n)={0,1,2,1,1} 程序设计

(1)选取时间抽取(DIT)基2快速傅里叶算法。程序如下:function y=fft1(x,n)

m=log2(n);

x1=bin2dec(fliplr(dec2bin([1:n]-1,m)))+1; %求1:2^m数列的倒序

y=x(x1);%将x倒序排列作为y的初始值

for l=1:m

N=2^l;%计算蝶形运算的跨越间隔

u=1; %初始旋转因子为1

W=exp(-1i*2*pi/N); %计算基本DFT因子W

for j=1:N/2%本次跨越间隔内的各次蝶形运算

for k=j:N:n %本次蝶形运算的跨越间隔为N=2^l

p=k+N/2; %确定蝶形运算的对应单元下标

t=y(p)*u; %蝶形运算的乘法项

y(p)=y(k)-t; %蝶形运算的加法项

相关文档
最新文档