预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共19页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

数字信号处理实验报告 实验一:信号、系统及系统响应 一、实验目的: (1)熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解。 (2)熟悉时域离散系统的时域特性。 (3)利用卷积方法观察分析系统的时域特性。 (4)掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对连续信号、离散信号及系统响应进行频域分析。 二、实验原理: (1)时域采样。 (2)LTI系统的输入输出关系。 三、实验内容 (1)认真复习采样理论、离散信号与系统、线性卷积、序列的傅里叶变换及性质等有关内容,阅读本实验原理与方法。 (2)编制实验用主程序及相应子程序。 ①信号产生子程序,用于产生实验中要用到的下列信号序列: a.xa(t)=A*e^-at*sin(Ω0t)u(t) A=444.128;a=50*sqrt(2)*pi; b.单位脉冲序列:xb(n)=δ(n) c.矩形序列:xc(n)=RN(n),N=10 ②系统单位脉冲响应序列产生子程序。本实验要用到两种FIR系统。 a.ha(n)=R10(n); b.hb(n)=δ(n)+2.5δ(n-1)+2.5δ(n-2)+δ(n-3) ③有限长序列线性卷积子程序 用于完成两个给定长度的序列的卷积。可以直接调用MATLAB语言中的卷积函数conv。conv用于两个有限长度序列的卷积,它假定两个序列都从n=0开始。调用格式如下:y=conv(x,h) 四、实验步骤 调通并运行实验程序,完成下述实验内容: ①分析采样序列的特性。 a.取采样频率fs=1kHz,即T=1ms。 b.改变采样频率,fs=300Hz,观察|X(ejω)|的变化,并做记录(打印曲线);进一步降低采样频率,fs=200Hz,观察频谱混叠是否明显存在,说明原因,并记录(打印)这时的|X(ejω)|曲线。 ②时域离散信号、系统和系统响应分析。 a.观察信号xb(n)和系统hb(n)的时域和频域特性;利用线性卷积求信号xb(n)通过系统hb(n)的响应y(n),比较所求响应y(n)和hb(n)的时域及频域特性,注意它们之间有无差别,绘图说明,并用所学理论解释所得结果。 b.观察系统ha(n)对信号xc(n)的响应特性。 ③卷积定理的验证。 五、思考题 (1)在分析理想采样序列特性的实验中,采样频率不同时,相应理想采样序列的傅里叶变换频谱的数字频率度量是否都相同?它们所对应的模拟频率是否相同?为什么? (2)在卷积定理验证的实验中,如果选用不同的频域采样点数M值,例如,选M=10和M=20,分别做序列的傅里叶变换,求得的结果有无差异?为什么? 六、实验程序及结果 本实验使用自定义函数的方法产生信号: 门函数: function[y,n]=gate(np,ns,nf) ifns>np|ns>nf|np>nf error('ÊäÈëλÖòÎÊý²»Âú×ãns<=np<=nf'); else n=[ns:nf]; y=(n>=0&n<np); end 冲击函数: function[y,n]=impseq(np,ns,nf) ifns>np|ns>nf|np>nf error('ÊäÈëλÖòÎÊý²»Âú×ãns<=np<=nf'); else n=[ns:nf]; y=[(n-np)==0]; end 时域函数: function[y,ts]=sig(t0,tp,t1); A=444.128;a=50.*sqrt(2).*pi;w0=50.*sqrt(2).*pi; ts=t0:tp:t1; y=A.*exp(-a.*ts).*sin(w0.*ts).*(ts>=0); ;hb=impseq(0,0,10)+2.5.*impseq(1,0,10)+2.5.*impseq(2,0,10)+impseq(3,0,10); ;[ha,N]=gate(10,0,10); 第一部分主程序: [y1,t1]=sig(0,0.001,1); %t1=0:0.001:1; %y1=0.5.*sin(2.*pi.*15.*t1); figure; plot(t1,y1); axis([00.15-10150]); title('f=1000ʱÓòÐźÅ'); figure; f=-500:500; yy1=fftshift(fft(y1)); plot(f,abs(yy1)); title('f=1000ƵÆ×'); [y2,t2]=sig(0,1/300,1); figure; plot(t2,y2); axis([00.15-10150]); title('f=300ʱÓòÐźÅ'); figure; yy2=fftshift(fft(y2)); plot(-150:150,abs(yy2)); title('f=3