数字信号处理实验讲义 -采用

上传人:xzh****18 文档编号:34448738 上传时间:2018-02-24 格式:DOC 页数:20 大小:162KB
返回 下载 相关 举报
数字信号处理实验讲义 -采用_第1页
第1页 / 共20页
数字信号处理实验讲义 -采用_第2页
第2页 / 共20页
数字信号处理实验讲义 -采用_第3页
第3页 / 共20页
数字信号处理实验讲义 -采用_第4页
第4页 / 共20页
数字信号处理实验讲义 -采用_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《数字信号处理实验讲义 -采用》由会员分享,可在线阅读,更多相关《数字信号处理实验讲义 -采用(20页珍藏版)》请在金锄头文库上搜索。

1、1实验一 信号(模拟、数字)的输入输出实验(常见离散信号产生和实现)一、实验目的1加深对常用离散信号的理解;2掌握 matlab 中一些基本函数的建立方法。二、实验原理1.单位抽样序列01)(n在 MATLAB 中可以利用 zeros()函数实现。;1)();,xNzeros如果 在时间轴上延迟了 k 个单位,得到 即:n )(kn01)(n2单位阶跃序列01)(nu在 MATLAB 中可以利用 ones()函数实现。x=ones(1,N) 3正弦序列 )/2sin()(FsfAx在 MATLAB 中,n=0:N-1;x=A*sin(2*pi*f*n/Fs+fai)4复指数序列2njerx)(

2、在 MATLAB 中,n=0:N-1;x=r*exp(j*w*n)5指数序列 nax)(在 MATLAB 中,n=0:N-1;x=a.n三、实验内容实现和图形生成1五种基本函数的生成程序如下:(1)单位抽样序列方法一:% 单位抽样序列和延时的单位抽样序列n=0:10;x1=1 zeros(1,10);x2=zeros(1,5) 1 zeros(1,5);subplot(1,2,1);stem(n,x1);xlabel (时间序列 n);ylabel(振幅);title(单位抽样序列x1);subplot(1,2,2);stem(n,x2); xlabel(时间序列 n);ylabel(振幅);

3、title(延时了 5 的单位抽样序列);3方法二:先在 matlab 中定义单位抽样序列:function x,n=dwxl(n1,n2,n0)n=n1:n2;x=(n=n0);在运行命令:x,n=dwxl(-5,5,3)stem(n,x);xlabel(n);title(单位抽样序列 x); (2)单位阶跃序列方法一:n=0:10;u=ones(1,11);stem(n,u);xlabel (时间序列 n);ylabel(振幅);title(单位阶跃序列);所得的图形如下所示:方法二;4先在 matlab 中定义单位阶跃序列:function x,n=jyxl(n1,n2,n0)n=n1:

4、n2;x=(n=n0);在运行命令:x,n=jyxl(-5,5,3)stem(n,x);xlabel(n);title(单位阶跃序列 x);(3)正弦函数n=1:30;x=2*sin(pi*n/6+pi/3);stem(n,x); xlabel (时间序列 n);ylabel(振幅);title(正弦函数序列x=2*sin(pi*n/6+pi/3);(4)复指数序列n=1:30;x=2*exp(j*3*n);stem(n,x); xlabel (时间序列 n);ylabel(振幅);title(复指数序列 x=2*exp(j*3*n);图形如下:(5)指数序列n=1:30;5x=1.2.n;s

5、tem(n,x); xlabel (时间序列 n);ylabel(振幅);title(指数序列x=1.2.n);2绘出信号 的频率是多少?周期是多少?产生一个数字)1.0*2sin(5.1)(x频率为 0.9 的正弦序列,并显示该信号,说明其周期?程序如下:n=0:40;x1=1.5*sin(2*pi*0.1*n);x2=sin(0.9*n);subplot(1,2,1);stem(n,x1); xlabel (时间序列 n);ylabel(振幅);title(正弦序列x1=1.5*sin(2*pi*0.1*n);subplot(1,2,2);stem(n,x2); xlabel (时间序列

6、n);ylabel(振幅);title(正弦序列 x2=sin(0.9*n);运行结果如下:由上图看出:x1=1.5*sin(2*pi*0.1*n)的周期是 10,而 x2=sin(0.9*n)是非周6期的。理论计算中对第一个,N2*/(0.1*)10,第二个 0.9 不是pi 的倍数,所以不是周期的。因此可以看出,实验结果和理论相符。3x(n)=2,3,1,1,2,-1,0,3,-2n5;h(n)=2,4,1,-2,0,-1,-3n 2,手工计算和 MATLAB 计算卷积 y(n)=x(n)*h(n)。参考程序如果 、 的起点不为 0,则采用 conv_m 计算卷积;)(nxh编写 conv

7、_m 函数:functiony,ny=conv_m(x,nx,h,nh)%改进卷积程序nyb=nx(1)+nh(1);nye=nx(length(x)+nh(length(h);ny=nyb:nye;y=conv(x,h); %MATLAB 自带的函数在命令窗口输入:x=3,11,7,0,-1,4,2;nx=-3:3;h=2,3,0,-5,2,1;nh=-1:4;y,ny=conv_m(x,nx,h,nh)stem(ny,y,.);xlabel(时间序号 n);title(卷积和 y(n)=x(n)*h(n);4function x,n=impseq(n1,n2,n0) function x,

8、n=stepseq(n1,n2,n0)n=n1:n2; n=n1:n2;x=(n-n0)=0; x=(n-n0)=0;四、实验报告要求1报告中要给出实验的 MATLAB 程序;2简述实验目的和原理;3给出用笔算时差分方程解、卷积和 conv 计算线性卷积对照图;4给出收获和体会。五、问题讨论与总结:1离散正弦序列的性质:7离散正弦序列就是一个连续的正弦信号被一系列冲激函数采样后的结果,原连续正弦函数一定是周期的,但采样后的离散序列却不一定是周期的。对于离散序列 x=sin(n*w)来说, 只有当 2*pi/是一个有理数时,也就是说当是pi 的倍数时,此离散序列才是周期的。所以在本实验中 x1=

9、1.5*sin(2*pi*0.1*n)的周期是 10,而 x2=sin(0.9*n)是非周期的。因为 0.9 不是 pi 的倍数。2离散复指数序列性质:对于离散复指数函数=a*exp(z*),只有当 z 是纯虚数,且纯虚数的系数是 pi 的倍数时,才是周期的。其它情况下均不是。8实验二 FFT 频谱分析及应用一、实验目的1通过实验加深对 FFT 的理解;2熟悉应用 FFT 对典型信号进行频谱分析的方法。二、实验内容使用 MATLAB 程序实现信号频域特性的分析。涉及到离散傅立叶变换(DFT)、快速傅立叶变换 (FFT)及信号频率分辨率等知识点。三、实验原理与方法和手段在各种信号序列中,有限长序

10、列占重要地位。对有限长序列可以利用离散傅立叶变换(DFT) 进行分析。DFT 不但可以很好的反映序列的频谱特性,而且易于用快速算法(FFT)在计算机上进行分析。有限长序列的 DFT 是其 z 变换在单位圆上的等距离采样,或者说是序列傅立叶的等距离采样,因此可以用于序列的谱分析。FFT 是 DFT 的一种快速算法,它是对变换式进行一次次分解,使其成为若干小数据点的组合,从而减少运算量。在 MATLAB 信号处理工具箱中的函数 fft(x,N),可以用来实现序列的 N点快速傅立叶变换。经函数 fft 求得的序列一般是复序列,通常要求出其幅值和相位。MATLAB 中提供了求复数的幅值和相位的函数:

11、abs、angle ,这些函数一般和 fft 同时使用。四、实验步骤在“开始-程序 ”菜单中,找到 MATLAB 程序,运行启动;进入 MATLAB 后 ,在 Command Window 中输入实验程序,并执行;记录运行结果图形,作分析。具体步骤如下:1模拟信号 ,以 进行采样,求:)8cos(5)4sin(2)(tttx )1:0(1.Nnt(1)N40 点 FFT 的幅度频谱,从图中能否观察出信号的 2 个频谱分量?9(2)提高采样点数,如 N128,再求该信号的幅度频谱,此时幅度频谱发生了什么变化?信号的 2 个模拟频率和数字频率各为多少?FFT 频谱分析结果与理论上是否一致?2有限长

12、序列 x(n)=2,1,0,1,3;h(n)=1,3,2,1,试利用 FFT 实现由 DFT 计算线性卷积,并与线性卷积直接计算(conv)的结果进行比较。参考程序1程序 1:%xh11N=40;n=0:N-1;t=0.01*n;x=2*sin(4*pi*t)+5*cos(8*pi*t);k=0:N/2;w=2*pi/N*k;X=fft(x,N);magX=abs(X(1:N/2+1);subplot(2,1,1);stem(n,x,.);title(signal x(n);subplot(2,1,2);plot(w/pi,magX);title(FFT N=40);xlabel(w (uni

13、t :pi);ylabel(|X|);grid2程序 2:%xh12% 用 FFT 实现由 DFT 计算线性卷积x=1 2 0 1;h=2 2 1 1;L=length(x)+length(h)-1; XE=fft(x,L);HE=fft(h,L); y1=ifft(XE.*HE);%画出由圆周卷积计算线性卷积结果及误差k=0:L-1;subplot(211);stem(k,real(y1);axis(0 6 0 7);title(Result of Linear Convolution);xlabel(Time index k);ylabel(Amplitude);y2=conv(x,h);

14、10error=y1-y2;subplot(212);stem(k,abs(error);xlabel(Time index k);ylabel(Amplitude); title(Error Magnitude);五、实验报告要求1报告中要给出实验的 MATLAB 程序;2简述实验目的和原理;3按实验步骤附上实验信号序列和幅频特性曲线,分析所得到的图形,回答每一步提出的问题。11实验三 IIR 数字滤波器的设计一、实验目的1掌握脉冲响应不变法和双线性变换法设计 IIR 数字滤波器的原理和方法;2观察双线性变换法和脉冲响应不变法设计的滤波器的频域特性,了解双线性变换法和脉冲响应不变法的特点和区

15、别。二、实验内容使用 MATLAB 编写程序,实现 IIR 数字滤波器的设计。涉及脉冲响应不变法和双线性变换法设计 IIR 数字滤波器的方法、不同设计方法得到的 IIR 滤波器频域特性异同等知识点。三、实验原理与方法和手段1脉冲响应不变法所谓脉冲响应不变法就是使数字滤波器的单位脉冲响应序列 h(n)等于模拟滤波器的单位冲激响应和 ha(t)的采样值,即: ,其中,)()(nthtnhanTaT 为采样周期。在脉冲响应不变法中,模拟角频率和数字角频率的变换关系为: ,T可见, 和 之间的变换关系为线性的。在 MATLAB 中,可用函数 impinvar 实现从模拟滤波器到数字滤波器的脉冲响应不变映射,调用格式为:B,A=impinvar(b,a,fs1)B,A=impinvar(b,a)其中,b、a 分别为模拟滤波器的分子和分母多项式系数向量;fs1 为采样频率(Hz) ,缺省值 fs=1Hz;B、A 分别为数字滤波器分子和分

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号