信息电子学院实验指导书格式-数字信号处理3554.pdf
实用文档 数字信号处理 实 验 指 导 书 蒋明峰 编 写 适用专业:电子信息科学与技术 浙江理工大学信息电子学院 二八年三月 实用文档 前 言 本课程是电子信息科学与技术,通信工程等本科专业及其他相近专业的一门专业必修课。通过本课程的学习,使学生掌握离散系统的基本概念和分析方法,数字滤波器的设计和实现,以及如何利用快速傅里叶变换等 DSP 技术对数字信号进行分析、滤波等处理,为其他课程的学习和今后的科研工作打下良好的基础。通过本课程的学习,学生应掌握以下基本概念、理论和方法:1.采样定理、离散序列的变换、离散信号的频谱分析;2.离散系统的传递函数、频率响应、离散系统的基本分析方法;3.数字滤波器的设计理论、滤波器的软件实现;4.离散傅里叶变换理论、快速傅里叶变换方法;5.有限字长效应。实用文档 实验一:离散时间序列卷积和 MATLAB 实现 实验学时:2 实验类型:(演示、验证、综合、设计、研究)实验要求:(必修、选修)一、实验目的 通过本实验学会用 MATLAB 对信号与系统进行分析,实现离散序列卷积和的计算。二、实验内容 题一:已知序列 f1(k)=其它0201k f2(k)=其它0332211kkk 调用 conv()函数求上述两序列的卷积和 f1=ones(1,3);f2=0:3;f=conv(f1,f2)t1 f=0 1 3 6 5 3 题二:编写计算两离散序列卷积和 f(k)=f1(k)*f2(k)的实用函数 dconv().要求该程序在计算出卷积和 f(k)的同时,还绘出序列 f1(k),f2(k)和 f(k)的时域波形图。functionf,k=dconv(f1,f2,k1,k2)%f1(k),f2(k)及 f(k)的对应序号向量分别为 k1,k2 和 k。functionf,k=dconv(f1,f2,k1,k2)f=conv(f1,f2);k0=k1(1)+k2(1);k3=length(f1)+length(f2)-2;k=k0:k0+k3;subplot(2,2,1);实用文档 stem(k1,f1);title(f1(k);xlabel(k);ylabel(f1(k);subplot(2,2,2);stem(k2,f2);title(f2(k);xlabel(k);ylabel(f2(k);subplot(2,2,3);stem(k,f);title(f1(k)与f2(k)的卷积和f(k));xlabel(k);ylabel(f(k)题三:试用 MATLAB 计算如下所示序列 f1(k)与 f2(k)的卷积和 f(k),绘出它们的时域波形,并说明序列 f1(k)与 f2(k)的时域宽度与序列 f(k)的时域宽度的关系。f1(k)=其它0110211kkk f2(k)=其它0221k 提示:可用上述dconv()的函数来解决。f1=1 2 1;k1=-1:1;f2=ones(1,5);k2=-2:2;f,k=dconv(f1,f2,k1,k2)f=1 3 4 4 4 3 1 k=-3 -2 -1 0 1 2 3 实用文档 题四:已知某 LTI 离散系统,其单位响应 h(k)=e(k)-e(k-4),求该系统在激励为 f(k)=e(k)-e(k-3)时的零状态响应,并绘出其时域波形图。f1=ones(1,4);f2=ones(1,3);k1=0:3;k2=0:2;dconv(f1,f2,k1,k2)ans=1 2 3 3 2 1 实用文档 三、实验原理、方法和手段 1、离散时间序列 f1(k)和 f2(k)的卷积和定义:f(k)=f1(k)*f2(k)=iikfif)(2)(1 2、在离散信号与系统分析中有两个与卷积和相关的重要结论:a、f(k)=iikif)()(=f(k)*(k)即离散序列可分解为一系列幅度由 f(k)决定的单位序列(k)及其平移序列之积。b、对线性时不变系统,设其输入序列为 f(k),单位响应为 h(k),其零状态响应为 y(k),则有:y(k)=iikhif)()(实用文档 四、实验组织运行要求 以学生自主训练为主的开放模式组织教学 五、实验条件(1)微机(2)MATLAB 编程工具 六、实验步骤 1熟悉实验内容,以及卷积运算的理论 2上机编程调试 3记录实验结果,撰写实验报告 七、实验报告 实验预习、实验记录和实验报告三部分。实验二:FFT 算法的 MATLAB 实现 实验学时:3 实验类型:(演示、验证、综合、设计、研究)实验要求:(必修、选修)一、实验目的 通过本实验的学习,掌握离散傅立叶变换的理论,特别是 FFT 的基本算法以及其在在数字信号处理中的应用。二、实验内容 题一:若 x(n)=cos(n*pi/6)是一个N=12 的有限序列,利用 MATLAB 计算它的DFT 并画出图形。N=12;n=0:N-1;xn=cos(n*pi/6);实用文档 Xk=fft(xn,N);stem(n,Xk);xlabel(k);ylabel(Xk);题二:一被噪声污染的信号,很难看出它所包含的频率分量,如一个由 50Hz和 120Hz 正弦信号构成的信号,受均值随机噪声的干扰,数据采样率为1000Hz,对这污染信号进行傅立叶变换,以检查所包含的频率分量 fs=1000;N=1024;n=0:N-1;t=n/fs;x=sin(2*pi*50*t)+sin(2*pi*120*t)+rand(1,N);y=fft(x,N);mag=abs(y);f=n*fs/N;subplot(1,2,1);plot(f,mag);xlabel(频率/Hz);ylabel(振幅);实用文档 title(N=1024);subplot(1,2,2);plot(f(1:N/2),mag(1:N/2);xlabel(频率/Hz);ylabel(振幅);title(N=1024);题三:调用原始语音信号 mtlb,对其进行 FFT 变换后去掉幅值小于 1 的 FFT变换值,最后重构语音信号。(要求有四幅语音信号的频谱图在同一图形窗口以便比较:分别是 1、原始语音信号;2、FFT 变换;3 去掉幅值小于 1 的 FFT 变换值;4、重构语音信号)load mtlb N=512;subplot(2,2,1)plot(1:N,mtlb(1:N);title(原始语音信号);grid;y=fft(mtlb(1:N);subplot(2,2,2);plot(1:N,y);title(原始语音信号FFT变换);grid;实用文档 y(y1)=0;subplot(2,2,3);plot(1:N,y);title(去掉幅值小于1的FFT变换);grid;subplot(2,2,4);plot(1:N,ifft(y);title(重构语音信号);grid;三、实验原理 1、有限长序列 x(n)的 DFT 的概念和公式:101010)(1)(10)()(NkknNNnknNNnWkxNnxNkWnxkx 2、基 2 的 FFT算法 四、实验组织运行要求 实用文档 以学生自主训练为主的开放模式组织教学 五、实验条件(1)微机(2)MATLAB 编程工具 六、实验步骤 1熟悉实验内容,FFT 算法的思想 2上机编程调试 3记录实验结果,撰写实验报告 七、实验报告 实验预习、实验记录和实验报告三部分。实用文档 实验三:IIR 滤波器的设计及实现 实验学时:3 实验类型:(演示、验证、综合、设计、研究)实验要求:(必修、选修)一、实验目的(1)熟悉用冲击响应不变法或双线性变换法设计IIR 数字滤波器的原理与方法。(2)掌握数字滤波器的计算机仿真方法。(3)通过观察对实际心电图信号的滤波作用,获得数字滤波的感性知识。二、实验内容 (1)设计一个巴特沃斯低通 IIR 数字滤波器。设计低通数字滤波器,要求在通带内频率低于 0.2pi rad 时,允许幅度误差在 1dB 以内,在频率 0.3pi rad 到 pi rad 之间的阻带衰减大于 15Db,用双线性变换法设计数字滤波器。模拟滤波器采用巴特沃斯滤波器原型。(2)用所设计的滤波器对实际心电图信号采样序列(在本实验后面给出)进行仿真滤波处理,并分别打印出滤波前后的心电图信号波形图,观察总结滤波作用与效果。心电图信号采样序列 x(n):人体心电图信号在测量过程中往往受到工业高频干扰,所以必须经过低通滤波处理后,才能作为判断心脏功能的有用信息。下面给出一实际心电图信号采样序列样本 x(n),其中存在高频干扰。在实验中,以x(n)作为输入序列,滤除其中的干扰成分。实用文档 x(n)=-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,-2,-4,8,12,12,10,6,6,6,4,0,0,0,0,0,-2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0 三、实验步骤 (1)复习有关巴特沃斯模拟滤波器设计和用冲击响应不变法或双线性变换法设计 IIR 数字滤波器的内容,求出满足本实验要求的数字滤波器系统函数:A=0.090 36 B1=1.2686,C1=-0.7051 B2=1.0106,C2=-0.3583 B3=0.9044,C3=-0.2155 由上式可见,滤波器 H(z)由三个二阶滤波器 H1(z),H2(z)和 H3(z)级联组成,如下图 所示。(2)编写滤波器仿真程序,计算 H(z)对心电图信号采样序列 x(n)的响应序列y(n)。设 yk(n)为第 k 级二阶滤波器 Hk(z)的输出序列,y k-1(n)为输入序列,如上图所示。由上式可得到差分方程:yk(n)=Ay k-1(n)+2Ay k-1(n-1)+Ayk-1(n-2)+Bkyk(n-1)+Ckyk(n-2)(3)在通用计算机上运行仿真滤波程序,并调用通用绘图子程序,完成实验1 61212120.0007378(1)()(1 1.2680.705)(1 1.01060.3583)(10.9040.215)zH zzzzzzz31()kKHz1212(12)(),1,2,31kkkAzzHzkB zC zx(n)H1(z)H2(z)H3(z)y1(n)y2(n)y3(n)y(n)H(z)实用文档 内容(2)和(3)。x=-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,-2,-4,8,12,12,10,6,6,6,4,0,0,0,0,0,-2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0;k=1;n=0:55;subplot(2,2,1);stem(n,x,.);axis(0 55-100 50);hold on;n=0:60;m=zeros(61);plot(n,m);xlabel(n);ylabel(x(n);title(心电图信号采样序列x(n));B=0.09036 2*0.09036 0.09036;A=1.2686-0.7051;A1=1.0106-0.3583;A2=0.9044-0.2155;y1=filter(B,A,x);y2=filter(B,A1,y1);y=filter(B,A2,y2);subplot(2,2,3);n=0:55;stem(n,y,.);axis(0 55-15 5);hold on;n=0:60;m=zeros(61);plot(n,m);xlabel(n);ylabel(x(n);title(三级滤波后的心电图信号);A=0.09036 2*0.09036 0.09036;B1=1-1.2686 0.7051;B2=1-1.0106 0.3583;B3=1-0.9044 0.2155;H1,w=freqz(A,B1,100);H2,w=freqz(A,B2,100);H3,w=freqz(A,B3,100);H4=H1.*(H2);H=H4.*(H3);mag=abs(H);db=20*log10(mag+eps)/max(mag);实用文档 subplot(2,2,2);plot(w/pi,db);axis(0 0.5-50 10);title(滤波器的幅频响应曲线)四、实验组织运行要求 以学生自主训练为主的开放模式组织教学 五、实验条件(1)微机(2)MATLAB 编程工具 六、实验步骤 1熟悉实验内容,熟悉 IIR 数字滤波器的原理与方法 2上机编程调试 3记录实验结果,撰写实验报告 实用文档 七、实验报告 实验预习、实验记录和实验报告三部分。