数字信号处理 实验一
- 格式:doc
- 大小:32.00 KB
- 文档页数:2
实验一: 系统及响应时域采样及频域采样1. 实验目的(1)掌握用卷积求系统响应及卷积定理的验证;(2)掌握连续信号经理想采样前后的频谱变化关系, 加深对时域采样定理的理解。
(3)掌握频域采样引起时域周期化概念, 加深对频域采样定理的理解。
(4) 掌握序列傅里叶变换的计算机实现方法, 利用序列的傅里叶变换对连续信号、离散信号及系统响应进行频域分析。
3. 实验内容及步骤(1) 认真复习卷积定理、 时域采样和频域采样理论。
(2) 编制实验用主程序及相应子程序。
①系统单位脉冲响应序列产生子程序。
有限长序列线性卷积子程序,用于完成两个给定长度的序列的卷积。
可以直接调用MATLAB 语言中的卷积函数conv 。
conv 用于两个有限长度序列的卷积,它假定两个序列 都从n=0开始。
调用格式如下: y=conv (x, h) ② 卷积定理的验证。
(3)时域采样定理的验证:信号产生子程序, 用于产生实验中要用到的下列信号序列:x a (t)=Ae -at sin(Ω0t)u(t) 进行采样, 可得到采样序列x a (n)=x a (nT)=Ae -anT sin(Ω0nT)u(n), 0≤n<50其中A 为幅度因子, a 为衰减因子, Ω0是模拟角频率, T 为采样间隔。
这些参数都要在实验过程中由键盘输入, 产生不同的x a (t)和x a (n)。
>> %1时域采样序列分析 A=400;a=200;w=200; n=0:50-1;fs=1000;xa=A*exp((-a)*n/fs).*sin(w*n/fs); k=-200:200;w=(pi/100)*k;Xk=fft(xa,length(k));magX=abs(Xk);angX=angle(Xk); subplot(2,1,1);stem(n,xa,'.');xlabel('n');ylabel('xa(n)'); title('信号的类型');)()(10n R n h a =)3()2(5.2)1(5.2)()(-+-+-+=n n n n n h b δδδδ1,,2,1,0,)()()(-==M k e H e X e Y k k k j j a j ωωωsubplot(2,1,2);plot(w/pi,magX);xlabel('w/pi'); ylabel('|Yjw|');title('Y(|jw|)');5101520253035404550n x a (n )信号的类型-2.5-2-1.5-1-0.500.51 1.5205001000w/pi|Y j w |Y(|jw|)(4)频域采样定理的验证:>> %1时域采样序列分析fs=1000 A=400; a=200; w=200;;ts=64*10^(-3); fs=1000;T=1/fs;n=0:ts/T-1; xn=A*exp((-a)*n/fs).*sin(w*n/fs); Xk=fft(xn);subplot(3,2,1);stem(n,xn);xlabel('n,fs=1000Hz'); ylabel('xn');title('xn'); subplot(3,2,2);plot(n,abs(Xk));xlabel('k,fs=1000Hz'); title('|X(k)|');20406080n,fs=1000Hzx nxn2040608005001000k,fs=1000Hz|X(k)|51015n,fs=200Hzx nxn51015100200k,fs=200Hz |X (k)|10203040n,fs=500Hzx nxn102030400500k,fs=500Hz|X (k)|>> %频域采样定理验证M=26;N=32;n=0:M;n1=0:13;x1=n1+1; n2=14:26;x2=27-n2; x=[x1,x2];Xk=fft(x,512); X32k=fft(x,32);k=0:511;w=(pi/512)*k;subplot(321);stem(n,x);xlabel('n'); ylabel('xn');axis([0,31,0,15]);subplot(322);plot(w,abs(Xk));xlabel('k'); ylabel('|X(k)|');axis([0,1,0,200]) X16k=X32k(1:2:N);x32n=ifft(X32k);x16n=ifft(X16k,16); k1=0:31;k2=0:15;subplot(323);stem(k1,abs(X32k));xlabel('k'); ylabel('X32k');axis([0,31,0,200]);subplot(325);stem(k2,abs(X16k));xlabel('k'); ylabel('|X(k)|');axis([0,15,0,200]) n=0:31;subplot(324);stem(n,abs(x32n));xlabel('n'); ylabel('|x(n)|');axis([0,31,0,15]) n1=0:15;subplot(326);stem(n1,abs(x16n));xlabel('n'); ylabel('|x(n)|');axis([0,31,0,15])102030nx n0.51100200k|X (k )|kX 32kn|x (n )|k|X (k )|102030n|x (n )|实验二:用FFT作谱分析1.实验目的(1) 进一步加深DFT算法原理和基本性质的理解(因为FFT只是DFT的一种快速算法,所以FFT的运算结果必然满足DFT的基本性质)。
实验一 信号、系统及系统响应一、实验目的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、学习MATLAB语言编程和调试技巧。
2、学会简单的矩阵输入和图形表示法3、掌握简单的绘图命令。
二、实验原理本实验主要为了熟悉MATLAB环境,重点掌握简单的矩阵(信号)输入和绘图命令,特别是绘图命令stem()和plot()。
实验内容中涉及到信号的无失真采样、离散卷积运算和差分方程求解这三个主要的问题。
其基本原理分别如下:对一个模拟信号x(t)进行采样离散化x(n),为了不失真地从采样信号x(n)中恢复原始信号x(t),采样时必须满足采样定理,即采样频率必须大于等于模拟信号中最高频率分量的2备。
一个离散时间系统,输入信号为x(n),输出信号为y(n),运算关系用T【.】表示,则输入与输出的关系可表示为y(n)=T[x(n)]。
三、实验结果实验一x=[3 1 2 0 -4 2 -3];n=-3:1:3;stem(n,x);xlabel('n');ylabel('x(n)');axis([-4 4 -5 5]);grid;n x (n )实验二n=0:9;x=0.5.^n;stem(n,x);xlabel('n');ylabel('x(n)');grid;n x (n )实验三x=[-2 0 1 -1 3];h=[1 2 0 -1];c=conv(x,h);M=length(c)-1;n=0:1:M;stem(n,c);xlabel('n');ylabel('幅度’);n 幅度实验四t=0:1/256:2;x=3*cos(2*pi*t)-2*cos(6*pi*t)+cos(10*pi*t); plot(t,x);grid;实验五T=0.2;t=0:T:2;x=3*cos(2*pi*t)-2*cos(6*pi*t)+cos(10*pi*t); stem(t,x);grid;实验六N=41;a=[0.8 -0.44 0.36 0.22];b=[1 0.7 -0.45 -0.6];x=[1 zeros(1,N-1)];n=0:1:N-1;y=filter(a,b,x);stem(n,y);xlabel('n');ylabel('幅度');n 幅度实验七n=0:1:40;x=[5+3*cos(0.2*pi*n)+4*sin(0.6*pi*n)]; plot(n,x);N=41;a=[0.8 -0.44 0.36 0.22];b=[1 0.7 -0.45 -0.6];x=[5+3*cos(0.2*pi*n)+4*sin(0.6*pi*n)]; n=0:1:40;y=filter(a,b,x);stem(n,y);xlabel('n');ylabel('幅度 ');n 幅度。
数字信号处理实验报告实验名称:离散时间系统的时域特性分析学生姓名: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产生各种离散时间信号,实现信号的相加、相乘及卷积运算实验函数:参考课本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 实验目的(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.了解MATLAB的实验环境;
2.充分熟悉subplot函数的使用;
3.能够画出单位脉冲序列及单位阶跃序列的图形;
4.能够画出矩形序列及正弦序列的图形。
二、实验步骤:
1.打开MATLAB,了解三个区域(工作区、命令区、历史记录区)的作用;
2.用help查找subplot函数的使用情况;
3.编辑并生成函数impseq.m(单位脉冲序列)
function [x,n] = impseq(n0,n1,n2)
% 产生 x(n) = delta(n-n0); n1 <= n,n0 <= n2
% [x,n] = impseq(n0,n1,n2)
if ((n0 < n1) | (n0 > n2) | (n1 > n2))
error('参数必须满足 n1 <= n0 <= n2')
end
n = [n1:n2];
%x = [zeros(1,(n0-n1)), 1, zeros(1,(n2-n0))];
x = [(n-n0) == 0];
以及函数stepseq.m(单位阶跃序列)
function [x,n] = stepseq(n0,n1,n2)
% 产生 x(n) = u(n-n0); n1 <= n0 <= n2
% [x,n] = stepseq(n0,n1,n2)
if ((n0 < n1) | (n0 > n2) | (n1 > n2))
error('参数必须满足n1 <= n0 <= n2')
end
n = [n1:n2];
%x = [zeros(1,(n0-n1)), ones(1,(n2-n0+1))];
x = [(n-n0) >= 0];
主函数test1.m
n=[-5:5];
x1=impseq(0,-5,5);
subplot(2,2,1);stem(n,x1);title('单位脉冲序列') xlabel('n');ylabel('x(n)');
n=[0:10];
x2=stepseq(0,0,10);
subplot(2,2,2);stem(n,x2);title('单位阶跃序列'); xlabel('n');ylabel('x(n)');
或主函数test2.m
n=[0:10];
x3=stepseq(0,0,10)-stepseq(5,0,10);
subplot(2,2,3);stem(n,x3);title('矩形序列'); xlabel('n');ylabel('x(n)');
n=[0:20];
x4=sin(0.3*n);
subplot(2,2,4);stem(n,x4);title('正弦序列'); xlabel('n');
ylabel('x(n)');
4. 先运行test1.m, 再运行test2.m,并改变坐标尺度n 的范围,分别画出另外两种坐标尺度的图形。
5. 画出)5(+n δ,)3(-n u ,)2()3(--+n u n u ,sin(0.6*n)的图形。
三、实验报告要求:
1. 实验目的
2. 实验步骤
3. 16个图形的结果,并得出结论或体会。
4. 思考题:请问有几种方法可以改变坐标尺度?。