广州大学数字信号处理实验一
- 格式:doc
- 大小:148.50 KB
- 文档页数:6
实验一 信号、系统及系统响应一、实验目的1、熟悉理想采样的性质,了解信号采样前后的频谱变化,加深对时域采样定理的理解。
2、熟悉离散信号和系统的时域特性。
3、熟悉线性卷积的计算编程方法:利用卷积的方法,观察、分析系统响应的时域特性。
4、掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对离散信号、系统及其系统响应进行频域分析。
二、 实验原理1.理想采样序列:对信号x a (t)=A e −αt sin(Ω0t )u(t)进行理想采样,可以得到一个理想的采样信号序列x a (t)=A e −αt sin(Ω0nT ),0≤n ≤50,其中A 为幅度因子,α是衰减因子,Ω0是频率,T 是采样周期。
2.对一个连续时间信号x a (t)进行理想采样可以表示为该信号与一个周期冲激脉冲的乘积,即x ̂a (t)= x a (t)M(t),其中x ̂a (t)是连续信号x a (t)的理想采样;M(t)是周期冲激M(t)=∑δ+∞−∞(t-nT)=1T ∑e jm Ωs t +∞−∞,其中T 为采样周期,Ωs =2π/T 是采样角频率。
信号理想采样的傅里叶变换为X ̂a (j Ω)=1T ∑X a +∞−∞[j(Ω−k Ωs )],由此式可知:信号理想采样后的频谱是原信号频谱的周期延拓,其延拓周期为Ωs =2π/T 。
根据时域采样定理,如果原信号是带限信号,且采样频率高于原信号最高频率分量的2倍,则采样以后不会发生频率混叠现象。
三、简明步骤产生理想采样信号序列x a (n),使A=444.128,α=50√2π,Ω0=50√2π。
(1) 首先选用采样频率为1000HZ ,T=1/1000,观察所得理想采样信号的幅频特性,在折叠频率以内和给定的理想幅频特性无明显差异,并做记录;(2) 改变采样频率为300HZ ,T=1/300,观察所得到的频谱特性曲线的变化,并做记录;(3) 进一步减小采样频率为200HZ ,T=1/200,观察频谱混淆现象是否明显存在,说明原因,并记录这时候的幅频特性曲线。
数字信号处理实验实验一信号、系统及系统响应1、实验目的认真复习采样理论、离散信号与系统、线性卷积、序列的z 变换及性质等有关内容;掌握离散时间序列的产生与基本运算,理解离散时间系统的时域特性与差分方程的求解方法,掌握离散信号的绘图方法;熟悉序列的z 变换及性质,理解理想采样前后信号频谱的变化。
2、实验内容a. 产生长度为500 的在[0,1]之间均匀分布的随机序列,产生长度为500 的均值为0 单位方差的高斯分布序列。
b. 线性时不变系统单位脉冲响应为h(n)=(0.9)nu(n),当系统输入为x(n)=R10(n)时,求系统的零状态响应,并绘制波形图。
c. 描述系统的差分方程为:y(n)-y(n-1)+0.9y(n-2)=x(n),其中x(n)为激励,y(n)为响应。
计算并绘制n=20,30,40,50,60,70,80,90,100 时的系统单位脉冲响应h(n);计算并绘制n=20,30,40,50,60,70,80,90,100 时的系统单位阶跃响应s(n);由h(n)表征的这个系统是稳定系统吗?d. 序列x(n)=(0.8)nu(n),求DTFT[x(n)],并画出它幅度、相位,实部、虚部的波形图。
观察它是否具有周期性?e. 线性时不变系统的差分方程为y(n)=0.7y(n-1)+x(n),求系统的频率响应H(ejω),如果系统输入为x(n)=cos(0.05πn)u(n),求系统的稳态响应并绘图。
f. 设连续时间信号x(t)=e-1000|t|,计算并绘制它的傅立叶变换;如果用采样频率为每秒5000 样本对x(t)进行采样得到x1(n),计算并绘制X1(ejω),用x1(n)重建连续信号x(t),并对结果进行讨论;如果用采样频率为每秒1000 样本对x(t)进行采样得到x2(n),计算并绘制X2(ejω),用x2(n)重建连续信号x(t),并对结果进行讨论。
加深对采样定理的理解。
g. 设X1(z)=z+2+3z-1,X2(z)=2z2+4z+3+5z-1,用卷积方法计算X1(z)X2(z)。
实验一 信号、系统及系统响应一、 实验目的1、熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解;2、熟悉时域离散系统的时域特性;3、利用卷积方法观察分析系统的时域特性;4、掌握序列傅立叶变换的计算机实现方法,利用序列的傅立叶变换对连续信号、离散信号及系统响应进行频域分析。
二、 实验原理及方法采样是连续信号数字处理的第一个关键环节。
对采样过程的研究不仅可以了解采样前后信号时域和频域特性发生变化以及信号信息不丢失的条件,而且可以加深对傅立叶变换、Z 变换和序列傅立叶变换之间关系式的理解。
对一个连续信号)(t x a 进行理想采样的过程可用下式表示:)()()(^t p t t xx aa=其中)(^t x a 为)(t x a 的理想采样,p(t)为周期脉冲,即∑∞-∞=-=m nT t t p )()(δ)(^t x a的傅立叶变换为)]([1)(^s m a m j X T j a XΩ-Ω=Ω∑∞-∞=上式表明^)(Ωj Xa为)(Ωj Xa的周期延拓。
其延拓周期为采样角频率(T /2π=Ω)。
只有满足采样定理时,才不会发生频率混叠失真。
在实验时可以用序列的傅立叶变换来计算^)(Ωj X a 。
公式如下:Tw jw ae X j X Ω==Ω|)()(^离散信号和系统在时域均可用序列来表示。
为了在实验中观察分析各种序列的频域特性,通常对)(jw e X 在[0,2π]上进行M 点采样来观察分析。
对长度为N 的有限长序列x(n),有:n jw N n jw k ke m x eX--=∑=)()(1其中,k Mk πω2=,k=0,1,……M-1 时域离散线性非移变系统的输入/输出关系为 ∑∞-∞=-==m m n h m x n h n x n y )()()(*)()(上述卷积运算也可在频域实现)()()(ωωωj j j e H e X eY =三、 实验程序s=yesinput(Please Select The Step Of Experiment:\n 一.(1时域采样序列分析 s=str2num(s); close all;Xb=impseq(0,0,1); Ha=stepseq(1,1,10);Hb=impseq(0,0,3)+2.5*impseq(1,0,3)+2.2*impseq(2,0,3)+impseq(3,0,3); i=0;while(s);%时域采样序列分析 if(s==1) l=1; k=0;while(1)if(k==0)A=yesinput('please input the Amplitude:\n',...444.128,[100,1000]); a=yesinput('please input the Attenuation Coefficient:\n',...222.144,[100,600]); w=yesinput('please input the Angle Frequence(rad/s):\n',...222.144,[100,600]); end k=k+1;fs=yesinput('please input the sample frequence:\n',...1000,[100,1200]); Xa=FF(A,a,w,fs); i=i+1;string+['fs=',num2str(fs)]; figure(i)DFT(Xa,50,string); 1=yesinput 1=str2num(1); end%系统和响应分析else if(s==2)kk=str2num(kk);while(kk)if(kk==1)m=conv(Xb,Hb);N=5;i=i+1;figure(i)string=('hb(n)');Hs=DFT(Hb,4,string);i=i+1;figure(i)string('xb(n)');DFT(Xb,2,string);string=('y(n)=xb(n)*hb(n)');else if (kk==2)m=conv(Ha,Ha);N=19;string=('y(n)=ha(n)*(ha(n)');else if (kk==3)Xc=stepseq(1,1,5);m=conv(Xc,Ha);N=14;string=('y(n)=xc(n)*ha(n)');endendendi=i+1;figure(i)DFT(m,N,string);kk=yesinputkk=str2num(kk);end卷积定理的验证else if(s==3)A=1;a=0.5;w=2,0734;fs=1;Xal=FF(A,a,w,fs);i=i+1;figure(i)string=('The xal(n)(A=1,a=0.4,T=1)'); [Xa,w]DFT(Xal,50,string);i=i+1;figure(i)string =('hb(n)');Hs=DFT(Hb,4,string);Ys=Xs.*Hs;y=conv(Xal,Hb);N=53;i=i+1;figure(i)string=('y(n)=xa(n)*hb(n)');[yy,w]=DFT(y,N,string);i=i+1;figure(i)subplot(2,2,1)plot(w/pi,abs(yy));axis([-2 2 0 2]);xlabel('w/pi');ylabel('|Ys(jw)|');title(FT[x(n)*h(n)]');subplot(2,2,3)plot(w/pi,abs(Ys));axis([-2 2 0 2]);xlabel('w/pi');ylabel('|Ys(jw)|');title('FT[xs(n)].FT[h(n)]');endendend子函数:离散傅立叶变换及X(n),FT[x(n)]的绘图函数function[c,l]=DFT(x,N,str)n=0:N-1;k=-200:200;w=(pi/100)*k;l=w;c=x*Xc=stepseq(1,1,5);子函数:产生信号function c=FF(A,a,w,fs)n=o:50-1;c=A*exp((-a)*n/fs).*sin(w*n/fs).*stepseq(0,0,49); 子函数:产生脉冲信号function [x,n]=impseq(n0,n1,n2)n=[n1:n2];x=[(n-n0)==0];子函数:产生矩形框信号function [x,n]=stepseq(n0,n1,n2) n=[n1:n2];x=[(n-n0>=0)];四、 实验内容及步骤1、认真复习采样理论,离散信号与系统,线性卷积,序列的傅立叶变换及性质等有关内容,阅读本实验原理与方法。
数字信号处理实验报告实验名称:离散时间系统的时域特性分析学生姓名:z学生学号:学生班级:上课时间:周二上午指导老师:一、实验目的线性时不变离散时间系统在时域中可以通过常系数线性差分方程来描述,冲激响应序列可以刻画其时域特性。
本实验通过使用MATLAB函数研究离散时间系统的时域特性,以加深对离散时间系统的差分方程、冲激响应和系统的线性和时不变特性的理解。
二、实验原理1.线性系统满足叠加原理的系统称为线性系统,即若某一输入是由N个信号的加权和组成的,则输出就是系统对这几个信号中每一个输入的响应的加权和。
即:如果系统在x1(n)和x2(n)输入时对应的输出分别为y1(n)和y2(n),当对任意常数a1和a2,式T[a1x1(n)+a2x2(n)]=a1T[x1(n)]+a2[x2(n)]=a1y1(n)+a2y2(n)成立,则该系统是线性系统。
2.时不变系统若输入x(n)的输出为y(n),则将输入序列移动任意位后,其输出序列除了跟着位移外,数值应保持不变。
即:当T[x(n)]=y(n),满足T[x(n-m)]=y(n-m) (m为任意整数)时,则该系统就称为时不变系统。
3.常系数线性差分方程线性时不变离散系统的输入、输出关系可以用以下常系数线性差分描述: y(n)=- ∑aky(n-k)+ ∑brx(n-r)当输入x(n)为单位冲激序列时,输出y(n)即为系统的单位冲击响应h(n)。
三、实验内容考虑如下差分方程描述的两个离散时间系统:系统1:y(n)=0.5x(n)+0.27x(n-1)+0.77x(n-2)系统2:y(n)=0.45x(n)+0.5x(n-1)+0.45x(n-2)+0.53y(n-1)-0.46y(n-2)输入想x(n)=cos(20n/256)+cos(200n/256)(1)编程求上述两个系统的输出,并分别画出系统的输入与输出波形。
(2)编程求上述两个系统的冲激响应序列,并画出其波形。
实验1 利用DFT 分析信号频谱一、实验目的1.加深对DFT 原理的理解。
2.应用DFT 分析信号的频谱。
3.深刻理解利用DFT 分析信号频谱的原理,分析实现过程中出现的现象及解决方法。
二、实验设备与环境 计算机、MATLAB 软件环境 三、实验基础理论1.DFT 与DTFT 的关系有限长序列 的离散时间傅里叶变换 在频率区间 的N 个等间隔分布的点 上的N 个取样值可以由下式表示:212/0()|()()01N jkn j Nk N k X e x n eX k k N πωωπ--====≤≤-∑由上式可知,序列 的N 点DFT ,实际上就是 序列的DTFT 在N 个等间隔频率点 上样本 。
2.利用DFT 求DTFT方法1:由恢复出的方法如下:由图2.1所示流程可知:101()()()N j j nkn j nN n n k X e x n eX k W e N ωωω∞∞----=-∞=-∞=⎡⎤==⎢⎥⎣⎦∑∑∑ 由上式可以得到:IDFTDTFT( )12()()()Nj k kX e X k Nωπφω==-∑ 其中为内插函数12sin(/2)()sin(/2)N j N x eN ωωφω--= 方法2:实际在MATLAB 计算中,上述插值运算不见得是最好的办法。
由于DFT 是DTFT 的取样值,其相邻两个频率样本点的间距为2π/N ,所以如果我们增加数据的长度N ,使得到的DFT 谱线就更加精细,其包络就越接近DTFT 的结果,这样就可以利用DFT 计算DTFT 。
如果没有更多的数据,可以通过补零来增加数据长度。
3.利用DFT 分析连续信号的频谱采用计算机分析连续时间信号的频谱,第一步就是把连续信号离散化,这里需要进行两个操作:一是采样,二是截断。
对于连续时间非周期信号,按采样间隔T 进行采样,阶段长度M ,那么:1()()()M j tj nT a a a n X j x t edt T x nT e ∞--Ω-Ω=-∞Ω==∑⎰对进行N 点频域采样,得到2120()|()()M jkn Na a M kn NTX j T x nT eTX k ππ--Ω==Ω==∑因此,可以将利用DFT 分析连续非周期信号频谱的步骤归纳如下: (1)确定时域采样间隔T ,得到离散序列(2)确定截取长度M ,得到M 点离散序列,这里为窗函数。
1.已知系统的差分方程如下式:y1(n)=0.9y1(n-1)+x(n)程序编写如下:(1)输入信号x(n)=R10 (n),初始条件y1(-1)=1,试用递推法求解输出y1(n);a=0.9; ys=1; %设差分方程系数a=0.9,初始状态: y(-1)=1xn=ones(1,10); %矩型序列R10(n)=u(n)-u(n-10),定义其宽度为0~9n=1:35; %设差分方程系数a=0.9,初始状态: y(-1)=1xn=sign(sign(10-n)+1);B=1;A=[1,-a]; %差分方程系数xi=filtic(B,A,ys); %由初始条件计算等效初始条件输入序列xiyn=filter(B,A,xn,xi); %调用filter解差分方程,求系统输出y(n)n=0:length(yn)-1;subplot(2,1,1);stem(n,yn,'linewidth',2); axis([-5,15,0,8]); grid ontitle('图(a) y1(n)=0.9y1(n-1)+x(n) 初始条件y1(-1)=1 ');xlabel('n');ylabel('y(n)')(2) 输入信号x(n)=R10 (n),初始条件y1(-1)=0,试用递推法求解输出y1(n)。
a=0.9; ys=0; %设差分方程系数a=0.9,初始状态: y(-1)=1xn=ones(1,10); %矩型序列R10(n)=u(n)-u(n-10)B=1;A=[1,-a]; %差分方程系数xi=filtic(B,A,ys); %由初始条件计算等效初始条件输入序列xiyn=filter(B,A,xn,xi); %调用filter解差分方程,求系统输出y(n)n=0:length(yn)-1;subplot(2,1,2);stem(n,yn, 'linewidth',2); axis([-5,15,0,8]); grid ontitle('图(b) y1(n)=0.9y1(n-1)+x(n) 初始条件y1(-1)=0 ');xlabel('n');ylabel('y(n)') 图形输出如下:-505101502468图(a) y1(n)=0.9y1(n-1)+x(n) 初始条件y1(-1)=1ny (n )-55101502468图(b) y1(n)=0.9y1(n-1)+x(n) 初始条件y1(-1)=0ny (n )2. 已知系统差分方程为: y 1(n )=0.9y 1(n -1)+x (n ) 用递推法求解系统的单位脉冲响应h (n ),要求写出h (n )的封闭公式,并打印h (n )~n 曲线。
《数字信号处理》—实验指导数字信号处理课程组电子与信息工程学院班级:姓名:学号:综合评定:成绩:指导教师签字:实验一 典型离散信号及其MATLAB 实现一、实验目的1. 掌握MATLAB 语言的基本操作,学习基本的编程功能。
2. 掌握MATLAB 产生常用离散时间信号的编程方法。
3. 掌握MATLAB 计算卷积的方法。
二、实验原理(一)MATLAB 常用离散时间信号1. 单位抽样序列:⎩⎨⎧=01)(n δ 00≠=n n在MATLAB 中可以利用zeros()函数实现。
;1)1();,1(==x N zeros x如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δ 0≠=n kn2.单位阶跃序列:⎩⎨⎧01)(n u<≥n n 在MATLAB 中可以利用ones()函数实现。
);,1(N ones x =3.正弦序列:)/2sin()(ϕπ+=Fs fn A n x在MATLAB 中:)/***2sin(*1:0fai Fs n f pi A x N n +=-=4.复正弦序列:n j e n x ϖ=)(在MATLAB 中:)**ex p(1:0n w j x N n =-=5.指数序列:na n x =)(在MATLAB 中:na x N n .^1:0=-=6.y=fliplr(x)——信号的翻转; y=square(x)——产生方波信号y=sawtooth(x)——产生锯齿波信号; y=sinc(x)——产生sinc 函数信号。
(二)离散时间信号的卷积由于系统的零状态响应是激励与系统的单位取样响应的卷积,因此卷积运算在离散时间信号处理领域被广泛应用。
离散时间信号的卷积定义为∑∞-∞=-==m m n h m x n h n x n y )()()(*)()(可见,离散时间信号的卷积运算是求和运算,因而常称为“卷积和”。
MATLAB 求离散时间信号卷积和的命令为conv ,其语句格式为y=conv(x,h)其中,x 与h 表示离散时间信号值的向量;y 为卷积结果。
数字信号处理课程实验报告实验一 离散时间信号和系统响应一. 实验目的1. 熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解2. 掌握时域离散系统的时域特性3. 利用卷积方法观察分析系统的时域特性4. 掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对离散信号及系统响应进行频域分析二、实验原理1. 采样是连续信号数字化处理的第一个关键环节。
对采样过程的研究不仅可以了解采样前后信号时域和频域特性的变化以及信号信息不丢失的条件,而且可以加深对离散傅里叶变换、Z 变换和序列傅里叶变换之间关系式的理解。
对连续信号()a x t 以T 为采样间隔进行时域等间隔理想采样,形成采样信号: 式中()p t 为周期冲激脉冲,()a x t 为()a x t 的理想采样。
()a x t 的傅里叶变换为()a X j Ω:上式表明将连续信号()a x t 采样后其频谱将变为周期的,周期为Ωs=2π/T 。
也即采样信号的频谱()a X j Ω是原连续信号xa(t)的频谱Xa(jΩ)在频率轴上以Ωs 为周期,周期延拓而成的。
因此,若对连续信号()a x t 进行采样,要保证采样频率fs ≥2fm ,fm 为信号的最高频率,才可能由采样信号无失真地恢复出原模拟信号ˆ()()()a a xt x t p t =1()()*()21()n a a a s X j X j P j X j jn T π∞=-∞Ω=ΩΩ=Ω-Ω∑()()n P t t nT δ∞=-∞=-∑计算机实现时,利用计算机计算上式并不方便,因此我们利用采样序列的傅里叶变换来实现,即而()()j j n n X e x n e ωω∞-=-∞=∑为采样序列的傅里叶变换2. 时域中,描述系统特性的方法是差分方程和单位脉冲响应,频域中可用系统函数描述系统特性。
已知输入信号,可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应。
实验一 信号、系统及系统响应一.实验目的1.熟悉理想采样的性质,了解信号采用前后的频谱变化,加深对采样定理的理解。
2.熟悉离散信号和系统的时域特性。
3.熟悉线性卷积的计算编程方法:利用卷积的方法,观察、分析系统响应的时域特性。
4.掌握序列傅氏变换的计算机实现方法,利用序列的傅氏变换对离散信号、系统及系统响应进行频域分析。
二.实验原理1.连续时间信号的采样采样是从连续时间信号到离散时间信号的过渡桥梁,对采样过程的研究不仅可以了解采样前后信号时域和频域特性发生的变化以及信号内容不丢失的条件,而且有助于加深对拉氏变换、傅氏变换、z 变换和序列傅氏变换之间关系的理解。
对一个连续时间信号进行理想采样的过程可以表示为该信号和个周期冲激脉冲的乘积,即)()()(ˆt M t x t xa a = (1-1) 其中)(ˆt xa 是连续信号)(t x a 的理想采样,)(t M 是周期冲激脉冲 ∑+∞-∞=-=n nT t t M )()(δ (1-2)它也可以用傅立叶级数表示为:∑+∞-∞=Ω=n tjm s e T t M 1)( (1-3)其中T 为采样周期,T s /2π=Ω是采样角频率。
设)(s X a 是连续时间信号)(t x a 的双边拉氏变换,即有:⎰+∞∞--=dt e t xs X st aa )()( (1-4)此时理想采样信号)(ˆt xa 的拉氏变换为 ∑⎰+∞-∞=+∞∞--Ω-===m s a sta a jm s X T dt e t x s X )(1)(ˆ)(ˆ (1-5)作为拉氏变换的一种特例,信号理想采样的傅立叶变换[]∑+∞-∞=Ω-Ω=Ωm s a a m j X T j X )(1)(ˆ (1-6)由式(1-5)和式(1-6)可知,信号理想采样后的频谱是原信号频谱的周期延拓,其延拓周期等于采样频率。
根据Shannon 采样定理,如果原信号是带限信号,且采样频率高于原信号最高频率分量的2倍,则采样以后不会发生频率混淆现象。
数字信号处理实验一实验目的:掌握利用Matlab产生各种离散时间信号,实现信号的相加、相乘及卷积运算实验函数:参考课本77-19页,注意式(2.11.1)的表达与各matlab子函数间的关系。
1、stem(x,y) % 绘制以x为横轴,y为纵轴的离散序列图形2、[h ,t] = impz(b, a) % 求解数字系统的冲激响应h,取样点数为缺省值[h, t] = impz(b, a, n) % 求解数字系统的冲激响应h,取样点数为nimpz(b, a) % 在当前窗口用stem(t, h)函数出图3、[h ,t] = dstep(b, a) % 求解数字系统的阶跃响应h,取样点数为缺省值[h, t] = dstep (b, a, n) % 求解数字系统的阶跃响应h,取样点数为ndstep (b, a) % 在当前窗口用stairs(t, h)函数出图4、y = filter(b,a,x) % 在已知系统差分方程或转移函数的情况下求系统输出实验原理:一、常用的时域离散信号及其程序1、产生单位抽样函数δ(n)n1 = -5;n2 = 5;n0 = 0;n = n1:n2;x = [n==n0]; % x在n=n0时为1,其余为0stem(n,x,'filled'); %filled:序列圆心处用实心圆表示axis([n1,n2,0,1.1*max(x)])title('单位抽样序列')xlabel('time(n)')ylabel('Amplitude:x(n)')2、产生单位阶跃序列u(n)n1 = -2;n2 = 8;n0 = 0;n = n1:n2;x = [n>=n0]; % x在n>=n0时为1,其余为0stem(n,x,'filled');axis([n1,n2,0,1.1*max(x)])title('单位阶跃序列')xlabel('time(n)')ylabel('Amplitude:x(n)')3、复指数序列复指数序列的表示式为()(),00,0j n e n x n n σω+⎧≥⎪=⎨<⎪⎩,当0ω=时,()x n 为实指数序列;当0σ=时,()x n 为虚指数序列,即()()cos sin j n e n j n ωωω=+,即其实部为余弦序列,虚部为正弦序列。
数字信号处理课程实验报告实验一 离散时间信号和系统响应一. 实验目的1. 熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解2. 掌握时域离散系统的时域特性3. 利用卷积方法观察分析系统的时域特性4. 掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对离散信号及系统响应进行频域分析二、实验原理1. 采样是连续信号数字化处理的第一个关键环节。
对采样过程的研究不仅可以了解采样前后信号时域和频域特性的变化以及信号信息不丢失的条件,而且可以加深对离散傅里叶变换、Z 变换和序列傅里叶变换之间关系式的理解。
对连续信号()a x t 以T 为采样间隔进行时域等间隔理想采样,形成采样信号: 式中()p t 为周期冲激脉冲,()a x t 为()a x t 的理想采样。
()a x t 的傅里叶变换为()a X j Ω:上式表明将连续信号()a x t 采样后其频谱将变为周期的,周期为Ωs=2π/T 。
也即采样信号的频谱()a X j Ω是原连续信号xa(t)的频谱Xa(jΩ)在频率轴上以Ωs 为周期,周期延拓而成的。
因此,若对连续信号()a x t 进行采样,要保证采样频率fs ≥2fm ,fm 为信号的最高频率,才可能由采样信号无失真地恢复出原模拟信号ˆ()()()a a xt x t p t =1()()*()21()n a a a s X j X j P j X j jn T π∞=-∞Ω=ΩΩ=Ω-Ω∑()()n P t t nT δ∞=-∞=-∑计算机实现时,利用计算机计算上式并不方便,因此我们利用采样序列的傅里叶变换来实现,即而()()j j n n X e x n e ωω∞-=-∞=∑为采样序列的傅里叶变换2. 时域中,描述系统特性的方法是差分方程和单位脉冲响应,频域中可用系统函数描述系统特性。
已知输入信号,可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应。
实验一:系统响应及系统稳定性1 实验目的(1)掌握求系统响应的方法。
(2)掌握时域离散系统的时域特性。
(3)分析、观察及检验系统的稳定性。
2 实验原理与方法在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。
已知输入信号,可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。
在计算机上适合用递推法求差分方程的解,最简单的方法是采用MA TLAB语言的工具箱函数filter函数。
也可以用MATLAB语言的工具箱函数conv函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。
系统的时域特性指的是系统的线性时不变性质、因果性和稳定性。
重点分析系统的稳定性,包括观察系统的暂态响应和稳态响应。
系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。
或者系统的单位脉冲响应满足绝对可和的条件。
系统的稳定性由差分方程的系数决定。
实际中检查系统是否稳定,不可能检查系统对所有有界的输入信号,输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件,可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的,系统的稳态输出是指当n→∞时,系统的输出。
如果系统稳定,信号加入系统后,系统输出的开始一段称为暂态效应,随n的加大,幅度趋于稳定,达到稳态输出。
注意在以下实验中均假设系统的初始状态为零。
3 实验内容及步骤(1)编制程序,包括产生输入信号、单位脉冲响应序列的子程序,用filter函数或conv 函数求解系统输出响应的主程序。
程序中要有绘制信号波形的功能。
(2)给定一个低通滤波器的差分方程为y(n) = 0.05x(n) + 0.05x(n-1) + 0.9y(n-1)输入信号x1(n) = R8(n) , x8 = u(n)①分别求出x1 = R8(n) 和x8 = u(n) 的系统响应,并画出其波形。
数字信号处理实验1--5含代码实验一离散时间信号的时域分析 1. 在MATLAB中利用逻辑关系式n,,0来实现序列,显示范围。
(产生如下,,,n,nn,n,n012图所示的单位脉冲信号的函数为impseq(n0,n1,n2),程序如示例所示),3,n,10并利用impseq函数实现序列:; ,,,,,,yn,2,n,3,,n,6,,xn1nnnn120源代码:impseq.mfunction y=impseq(n0,n1,n2)n=[n1:n2]y=[(n-n0)==0]exp01-1.mfunction impseq(n0,n1,n2)n=-3:1:10y=2*impseq(3,-3,10)+impseq(6,-3,10);stem(n,y)n,,0,,2. 在MATLAB中利用逻辑关系式来实现序列,显示范围。
(自己编写un,nn,n,n012产生单位阶跃信号的函数,函数命名为stepseq(n0,n1,n2)) 并利用编写的stepseq函数实现序列: ,,,,,,yn,un,2,un,2,5,n,10源代码:stepseq.mfunction y=stepseq(n0,n1,n2)n=n1:1:n2y=[(n-n0)>=0]exp01-2.mfunction stepseq(n0,n1,n2)n=-5:1:20y=stepseq(-2,-5,20)+stepseq(2,-5,20)stem(n,y)3. 在MATLAB中利用数组运算符“.^”来实现一个实指数序列。
如: n ,,,,xn,0.30,n,15源代码:n=0:1:15;x=0.3.^nstem(n,x)4. 在MATLAB中调用函数sin或cos产生正余弦序列,如:π,, ,,,,xn,3sin0.4πn,,5cos0.3πn0,n,20,,5,,源代码:n=0:1:20x=11*sin(0.3*pi*n+pi/5)+5*cos(0.3*pi*n)stem(n,x)思考题:1.在MATLAB环境下产生单位脉冲序列和单位阶跃序列各有几种方法,如何使用,2.在MATLAB环境下进行序列的相乘运算时应注意什么问题,实验二离散时间系统的时域分析1. 在MATLAB中利用内部函数conv来计算两个有限长序列的卷积。
数字信号处理实验报告实验一:混叠现象的时域与频域表现实验原理:当采样频率Fs不满足采样定理,会在0.5Fs附近引起频谱混叠,造成频谱分析误差。
实验过程:考虑频率分别为3Hz,7Hz,13Hz 的三个余弦信号,即:g1(t)=cos(6πt), g2(t)=cos(14πt), g3(t)=cos(26πt),当采样频率为10Hz 时,即采样间隔为0.1秒,则产生的序列分别为:g1[n]=cos(0.6πn), g2[n]=cos(1.4πn), g3[n]=cos(2.6πn)对g2[n],g3[n] 稍加变换可得:g2[n]=cos(1.4πn)=cos((2π-0.6π)n)= cos(0.6πn)g3[n]=cos(2.6πn)= cos((2π+0.6π)n)=cos(0.6πn)利用Matlab进行编程:n=1:300;t=(n-1)*1/300;g1=cos(6*pi*t);g2=cos(14*pi*t);g3=cos(26*pi*t);plot(t,g1,t,g2,t,g3);k=1:100;s=k*0.1;q1=cos(6*pi*s);q2=cos(14*pi*s);q3=cos(26*pi*s);hold on; plot(s(1:10),q1(1:10),'bd');figuresubplot(2,2,1);plot(k/10,abs(fft(q1)))subplot(2,2,2);plot(k/10,abs(fft(q2)))subplot(2,2,3);plot(k/10,abs(fft(q3)))通过Matlab软件的图像如图所示:如果将采样频率改为30Hz,则三信号采样后不会发生频率混叠,可运行以下的程序,观察序列的频谱。
程序编程改动如下:k=1:300;q=cos(6*pi*k/30);q1=cos(14*pi*k/30);q2=cos(26*pi*k/30);subplot(2,2,1);plot(k/10,abs(fft(q)))subplot(2,2,2);plot(k/10,abs(fft(q1)))subplot(2,2,3);plot(k/10,abs(fft(q2)))得图像:问题讨论:保证采样后的信号不发生混叠的条件是什么?若信号的最高频率为17Hz,采样频率为30Hz,问是否会发生频率混叠?混叠成频率为多少Hz的信号?编程验证你的想法。
实验一:用FFT 对信号作频谱分析1.实验目的学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析 误差及其原因,以便正确应用FFT 。
2. 实验原理用FFT 对信号作频谱分析是学习数字信号处理的重要内容。
经常需要进行谱分析的信号是模拟信号和时域离散信号。
对信号进行谱分析的重要问题是频谱分辨率D 和分析误差。
频谱分辨率直接和FFT 的变换区间N 有关,因为FFT 能够实现的频率分辨率是N /2π,因此要求D N ≤/2π。
可以根据此式选择FFT 的变换区间N 。
误差主要来自于用FFT 作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N 较大时离散谱的包络才能逼近于连续谱,因此N 要适当选择大一些。
周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT ,得到的离散谱才能代表周期信号的频谱。
如果不知道信号周期,可以尽量选择信号的观察时间长一些。
对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。
如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。
3.实验步骤及内容(1)对以下序列进行谱分析。
⎪⎩⎪⎨⎧≤≤-≤≤-=⎪⎩⎪⎨⎧≤≤-≤≤+==其它nn n n n n x 其它nn n n n n x n R n x ,074,330,4)(,074,830,1)()()(3241选择FFT 的变换区间N 为8和16 两种情况进行频谱分析。
分别打印其幅频特性曲线。
并进行对比、分析和讨论。
(2)对以下周期序列进行谱分析。
4()cos4x n n π=5()cos(/4)cos(/8)x n n n ππ=+选择FFT 的变换区间N 为8和16 两种情况分别对以上序列进行频谱分析。
分别打印其幅频特性曲线。
并进行对比、分析和讨论。
(3)对模拟周期信号进行谱分析6()cos8cos16cos20x t t t t πππ=++选择 采样频率Hz F s 64=,变换区间N=16,32,64 三种情况进行谱分析。
实验一系统响应及系统稳定性一、实验目的(1)掌握求系统响应的方法。
(2)掌握时域离散系统的时域特性。
(3)分析、观察及检验系统的稳定性。
二实验内容及步骤1、给定一个低通滤波器的差分方程为y(n)=0.05x(n)+0.05x(n-1)+0.9y(n-1),输入信号x1(n)=R8(n)x2(n)=u(n)a)分别求出系统对x1(n)=R8(n)和x2(n)=u(n)的响应序列,并画出其波形。
b)求出系统的单位冲响应,画出其波形。
xn1=[1 1 1 1 1 1 1 1 zeros(1,50)];xn2=ones(1,128);xn3=[1,zeros(1,50)];B=[0.05,0.05];A=[1,-0.9];yn1=filter(B,A,xn1);yn2=filter(B,A,xn2);yn3=filter(B,A,xn3);figure(1);n1=0:length(yn1)-1;subplot(2,2,1);stem(n1,yn1,'.');xlabel('n');ylabel('yn1');title('yn1');n2=0:length(yn2)-1;subplot(2,2,2);stem(n2,yn2,'.');xlabel('n');ylabel('yn2');title('yn2');n3=0:length(yn3)-1;subplot(2,2,3);stem(n3,yn3,'.');xlabel('n');ylabel('yn3');title('yn3');2、给定系统的单位脉冲响应为h1(n)=R10(n),h2(n)=δ(n)+2.5δ(n-1)+δ(n-2)+δ(n-3)用线性卷积法分别求系统h1(n)和h2(n)对x1(n)=R8(n)的输出响应,并画出波形。
实验一离散时间信号的产生一、实验目的数字信号处理系统中的信号都是以离散时间形态存在的,所以对离散时间信号的研究是数字信号的基本所在。
而要研究离散时间信号,首先需要产生出各种离散时间信号。
使用MATLAB软件可以很方便地产生各种常见的离散时间信号,而且它还具有强大绘图功能,便于用户直观地处理输出结果。
通过本实验,学生将学习如何用MATLAB产生一些常见的离散时间信号,实现信号的卷积运算,并通过MATLAB中的绘图工具对产生的信号进行观察,加深对常用离散信号和信号卷积和运算的理解。
二、实验原理离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。
离散序列通常用x(n)来表示,自变量必须是整数。
常见的离散信号如下:(1)单位冲激序列δ(n)如果δ(n)在时间轴上延迟了k个单位,得到δ(n-k),即长度为N的单位冲激序列δ(n)可以通过下面的MATLAB命令获得。
n=-(N-1):N-1x=[zeros(1,N-1) 1 zeros(1,N-1)];stem(n,x)延迟K个采样点的长度为N的单位冲激序列δ(n-k)(k<N)可以用下面命令获得:n=0:N-1y=[zeros(1,M) 1 zeros(1,N-M-1)];stem(n,y)(2)单位阶跃序列u(n)如果u(n)在时间轴上延迟了k个单位,得到u(n-k),即长度为N的单位阶跃序列u(n)可以通过下面的MATLAB命令获得。
n=-(N-1):N-1x=[zeros(1,N-1) ones(1,N)];stem(n,x)延迟的单位阶跃序列可以使用类似于单位冲激序列的方法获得。
(3)矩形序列矩形序列有一个重要的参数,就是序列的宽度N。
矩形序列与u(n)之间的关系为矩形序列等= u(n)— u(n-N)。
因此,用MATLAB表示矩形序列可利用上面的单位阶跃序列组合而成。
(4)正弦序列x(n)这里,正弦序列的参数都是实数。
与连续的正弦信号不同,正弦序列的自变量n 必须为整数。
广州大学学生实验报告
开课学院及实验室: 年 月 日 一、 实验目的 1.熟悉MATLAB 的主要操作命令。
2.学会用MATLAB 创建时域离散信号。
3.学会创建MATLAB 函数。
二、 实验原理
参阅附录MATLAB 基本操作及常用命令。
三、 实验内容
完成以下操作。
1.数组的加、减、乘、除运算。
输入A=[1 2 3 4];B=[3 4 5 6];计算:C=A+B ;D=A-B ;E=A.*B ;F=A./B ;G=A.^B ;并用stem 语句画出A 、B 、C 、D 、E 、F 、G 。
2.用MATLAB 实现以下序列
(1)单位抽样序列
(2)单位阶跃序列
⎩⎨⎧<≥=0
00,0,1)n -(n n n n n u
(3)矩形序列
⎩⎨⎧≠==0
0,0,1)n -(n n n n n δ
⎩⎨⎧≥<-≤≤=),0(,0)10(,1)(N n n N n n R N
(4)正弦序列
X(n)=5sin(0.5πn+ π/4)
(5)指数序列
X(n)=exp(-0.5n)
3.用MA TLAB 生成以下两个序列:
)4(5)3(4)2(3)1(2)()(-+-+-+-+=n n n n n n x δδδδδ
)3(2)2()1(2)()(-+-+-+=n n n n n h δδδδ
并作以下运算,并绘制运算后序列的波形。
(1))5(,
)5(+-n x n x
(2))(n x -
(3))()(n h n x +
(4))(3n x
(5))()(n h n x
4.利用MATLAB 读取一个W A V 文件,并画出其波形图。
将此W A V 文件的信号幅
度衰减一半后再存为另一个W A V 文件。
四. 实验结果:
实验内容1结果与程序如下:
A=[1 2 3 4]
B=[3 4 5 6]
C=A+B
D=A-B
E=A.*B
F=A./B
G=A.^B
subplot(3,3,1)
stem(A,'.')
subplot(3,3,2)
stem(B,'.')
subplot(3,3,3) stem(C,'.')
subplot(3,3,4)
stem(D,'.')
subplot(3,3,5)
stem(E,'.')
subplot(3,3,6)
stem(F,'.')
subplot(3,3,7)
stem(G,'.')
实验内容2 结果与程序如下(已改正):
离散时间信号的产生
(1)单位抽样序列
先定义delta 函数,并保存.
function[x,n]=delta(n0,n1,n2)
n=[n1:n2];
x=[(n-n0)==0];
然后执行下面程序.(以δ(n-3)为例)
[x,n]=delta(3,-1,10);
stem(n,x);
(2)单位阶跃序列
⎩⎨⎧<≥=000,0,1)n -(n n n n n u
先定义stepseq 函数,并保存.
function[x,n]=stepseq(n0,n1,n2)
n=[n1:n2];
x=[(n-n0)>=0];
然后执行下面程序.(以u(n-3)为例)
[x,n]=stepseq (3,-1,10);
stem(n,x);
(3)矩形序列
⎩⎨⎧≥<-≤≤=),0(,0)10(,1)(N n n N n n R N
先定义aaa 函数,并保存.
function[x,n]=aaa(N,n1,n2)
n=[n1:n2];
x=[(N>n)&(n>=0)];
然后执行下面程序.(以R3)为例)
⎩⎨⎧≠==000,0,1)n -(n n n n n δ
[x,n]=aaa (3,-1,10);
stem(n,x);
(4)单位斜坡序列
先定义ramp 函数,并保存.
function[x,n]=ramp(n1,n2)
n=[n1:n2];
x=n;
然后执行下面程序
[x,n]=ramp (0,10);
Stem(n,x);
(5)正弦序列
例: x=5*sin(0.5*pi*n+ pi/4)
n=-pi:0.1:pi;
x=5*sin(0.5*pi*n+pi/4);
stem(n,x)
(6)指数序列
例:x=5*exp(-0.5*n)
n=-1:0.1:1;
x=5*exp(-0.5*n);
stem(n,x)
(7)任意序列
例:
x=[1,5,-4,2,5,-1,5];
n=1:length(x);
stem(n,x)
⎩⎨⎧<≥=0,00,(n)n n n x
实验内容3 结果与程序如下:
n=[-10:10]
h=[(n)==0]+2*[(n-1)==0]+[(n-2)==0]+2*[(n-3)==0]
subplot(3,3,1);stem(n,h,'.')
axis([-10,10,0,5]);xlabel('n');ylabel('h(n)')
x=[(n)==0]+2*[(n-1)==0]+3*[(n-2)==0]+4*[(n-3)==0]+5*[(n-4)==0] subplot(3,3,2);stem(n,x,'.')
axis([-10,10,0,5]);xlabel('n');ylabel('x(n)')
subplot(3,3,3);stem(n+5,x,'.')
axis([-10,10,0,5]);xlabel('n');ylabel('x(n-5)')
subplot(3,3,4);stem(n-5,x,'.')
axis([-10,10,0,5]);xlabel('n');ylabel('x(n+5)')
subplot(3,3,5);stem(-n,x,'.')
axis([-10,10,0,5]);xlabel('n');ylabel('x(-n)')
subplot(3,3,6);stem(n,x+h,'.')
axis([-10,10,0,5]);xlabel('n');ylabel('x(n)+h(n)')
subplot(3,3,7);stem(n,3*x,'.')
axis([-10,10,0,5]);xlabel('n');ylabel('3x(n)')
subplot(3,3,8);stem(n,x.*h,'.')
axis([-10,10,0,5]);xlabel('n');ylabel('x(n)h(n)')
实验内容3波形与程序如下:
[y,fs,bits]=wavread('C:\Documents and Settings\Administrator\桌面\数字信号处理课后答案\爱的代价.wav')
t=(0:length(y)-1)/fs
subplot(2,1,1);
plot(t,y);
axis([0,13,-0.4,0.6])
xlabel('时间(s)');
ylabel('幅度');
subplot(2,1,2)
plot(t,y/2)
axis([0,13,-0.4,0.6])
xlabel('时间(s)');
ylabel('幅度')
wavwrite(y/2,fs,bits, 'C:\Documents and Settings\Administrator\桌面\数字信号处理课后答案\爱的代价2.wav')。