资源预览内容
第1页 / 共42页
第2页 / 共42页
第3页 / 共42页
第4页 / 共42页
第5页 / 共42页
第6页 / 共42页
第7页 / 共42页
第8页 / 共42页
第9页 / 共42页
第10页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
前言“数字信号处理”是一门理论和实践密切结合的课程,为了深入地掌 握课程内容,应当在学习理论的同时,作习题和上机实验。上机实验不仅 可以帮助读者深入地理解和消化基本理论,而且能锻炼初学者的独立解决 问题的能力。本课程根据课程重点编写了五个实验,供学生使用或参考。 由于数字信号处理实验的主要目的是验证数字信号处理的有关理论,进一 步理解巩固所学理论知识,所以,对实验用算法语言不作任何限制。为了 提高实验效率,我们提倡学生选用编程效率比 C 语言高好几倍的 MATLAB 语言,按照指导书的要求,上机编程完成实验。实验一 用 FFT 进行谱分析实验一、实验目的:(1)用FFT进行谱分析,了解fft.m文件的各参数及使用方法;(2) 学习提高频率分辨率的方法,加深对栅栏效应和频谱泄漏等 概念的理解。二、实验设备:计算机, MATLAB 软件。三、实验原理:离散傅里叶变换(DFT)可以用快速傅里叶变换(FFT)算法来计算。 在MATLAB信号处理工具箱中,提供了函数fft ()、iff t()分别求解离散傅 里叶变换与逆变换。调用格式如下:Xk=fft(x)Xk=fft(x,N)表示计算信号x的快速离散傅里叶变换Xk。当x的长度N为2的整数 次方时,采用基2算法,否则采用较慢的分裂基算法。当length(x)N时, 截断x,否则补零。x=ifft(Xk)x=ifft(Xk,N)表示计算 Xk 的逆离散傅里叶变换。1. 用 FFT 进行谱分析用 FFT 的结果分析 x(t)=cos(2n X 50t)+ 0.5cos(2n X 1501) + 0.3cos(2n X2501)的频谱。t=0:0.02/64:0.04;f1=50;y1=cos(2*pi*f1*t)+0.5*cos(2*pi*3*f1*t)+0.3*cos(2*pi*5*f1*t);subplot(311);plot(t,y1);t=0:0.02/16:0.02-0.02/16;f=cos(2*pi*f1*t)+0.5*cos(2*pi*3*f1*t)+0.3*cos(2*pi*5*f1*t);F_1024=2*abs(fft(f,16)/16;k=0:1:15;subplot(312);stem(k,abs(F_1024);%由于栅栏效应,只能看到 16 条谱线axis(0,16,0,1.5)F_1024=2*abs(fft(f,1024)/16;%补零减小栅栏效应,可以得到连续频谱L=0:1023;subplot(313);plot(L/1023,abs(F_1024);set(gca,xtick,0,0.0625,0.125,0.1875,0.25,0.3125,0.375,0.4375,0.5,0.5625,0.625,0.6875,0.75,0.8125,0.875,0.9375,1) %频率 刻度为归一化频率运行该程序,结果显示如下:210-1-21.510.500 0.0625 0.125 0.1875 0.25 0.3125 0.375 0.4375 0.5 0.5625 0.625 0.6875 0.75 0.8125 0.875 0.9375 12. 用 FFT 进行谱分析中的观测时间的选取 改变观测时间可以提高频率分辨率。对 x(t)=cos(2n X501)+ 0.5cos(2n X751)进行 DFT。t=0:0.02/64:0.04;f1=50;f2=75;y1=cos(2*pi*f1*t);y2=0.5*cos(2*pi*f2*t);subplot(411);plot(t,y1);hold on;subplot(411);plot(t,y2);hold on;k=0:1:7;f=cos(pi/4*k)+0.5*cos(3*pi/8*k);F_1024=2*abs(fft(f,1024)/8;L=0:1023;subplot(412);plot(L/1023,abs(F_1024);%axis(0,1024,0,2) set(gca,xtick,0,0.125,0.25,0.375,0.5,0.625,0.75,0.875,1) hold on;k=0:1:15;f=cos(pi/4*k)+0.5*cos(3*pi/8*k);F_1024=2*abs(fft(f,1024)/16;L=0:1023;subplot(413);plot(L/1024,abs(F_1024);set(gca,xtick,0,0.125,0.25,0.375,0.5,0.625,0.75,0.875,1) hold on;k=0:1:31;f=cos(pi/4*k)+0.5*cos(3*pi/8*k);F_1024=2*abs(fft(f,1024)/32;L=0:1023;subplot(414);plot(L/1024,abs(F_1024);set(gca,xtick,0,0.125,0.25,0.375,0.5,0.625,0.75,0.875,1) hold on;运行该程序,结果显示如下:四、实验内容与步骤:1. 将例题程序输入计算机,运行并对各图中的波形形状进行解释,并 说明理由。2. 修改用 FFT 进行谱分析的程序,将采样点数增加为32(截取 2 个 周期)个,重新用FFT进行谱分析。3. 修改用 FFT 进行谱分析的程序,将采样点数增加为64(截取 4 个 周期)个,重新用 FFT 进行谱分析。实验二 用脉冲响应不变法设计 IIR 数字滤波器一、实验目的:(1) 了解巴特沃思模拟低通滤波器、切比雪夫I型、II型模拟低通滤 波器函数的使用方法;(2)学习脉冲响应不变法设计IIR数字滤波器的设计方法。二、实验设备:计算机,MATLAB软件。三、实验原理:MATLAB提供了设计巴特沃思模拟低通滤波器、切比雪夫I型、II型模 拟低通滤波器、椭圆模拟低通滤波器的函数,调用格式为z,p,k=buttap(n)z,p,k=cheb1ap(n,Rp)z,p,k=cheb2ap(n,Rs)z,p,k=ellipap(n,Rp,Rs)其中,n为滤波器的阶次;z、p、k分别为滤波器传递函数的零点、极 点和增益; Rp 为通带波纹, Rs 为阻带衰减。MATLAB 还提供了模拟滤波器的频率变换函数,可以借助模拟低通滤波 器的系统函数,经过适当的频率变换,得到高通、带通、带阻滤波器的系 统函数。调用格式为(1)低通到低通的变换bt,at=lp2lp(b,a,wp)At,Bt,Ct,Dt=lp2lp(A,B,C,D,wp)(2) 低通到高通的变换bt,at=lp2hp(b,a,wp)At,Bt,Ct,Dt=lp2hp(A,B,C,D,wp)3)低通到带通的变换bt,at=lp2bp(b,a,w0,Bw)At,Bt,Ct,Dt=lp2bp(A,B,C,D,w0,Bw) (4)低通到带阻的变换bt,at=lp2bs(b,a, w0,Bw) At,Bt,Ct,Dt=lp2bs(A,B,C,D, w0,Bw)其中,b、a和bt、at分别为变换前和变换后的系统函数的分子和分 母系数向量;第二种格式是系统状态空间形式。wp为通带频率,w0为中心 频率,Bw为带宽。冲激响应不变法设计IIR数字滤波器MATLAB 提供了使用脉冲响应不变法设计 IIR 数字滤波器的函数 impinvar(),调用格式为bz,az=impinvar(b,a,fs)bz,az=impinvar(b,a,fs,tol)将模拟滤波器(b,a)变换成数字滤波器(bz,az)。其中,fs表示采 样频率,单位为Hz,默认值为1。Tol表示区分多重极点的程度,默认值 为 0.1%。MATLAB提供了 freqz()函数可方便地绘制出系统的频率特性,调用格 式为freqz(b,a)h,w=freqz(b,a,n)h,f=freqz(b,a,n,Fs)h=freqz(b,a,w) h=freqz(b,a,f,Fs)h,w=freqz(b,a,n, whole)h,f=freqz(b,a,n,whole,Fs)其中,b、a分别为系统函数的分子、分母系数向量;n为频率的计算 点数,常取2的整数次幕;横坐标为数字角频率e,范围为0到n。h,w= freqz(b,a,n)自动设定n个频率点来计算频率特性h, n个频 率点均匀地分布在0到n,这n个频率值记录在w中。h,f二freqz(b,a,n,Fs)自动设定n个频率点来计算频率特性h, n个频率点均匀地分布在0Fs/2中,这n个频率值记录在w中。h,w=freqz(b,a,n, whole)表示在0到2n中均匀选取n个点计 算频率特性。h,f=freqz(b,a,n, whole ,Fs)表示在 0 到 Fs 中均匀选取 n 个点计算频率特性。h=freqz(b,a,w)计算在向量w中指定的频率处的频率特性。不带输出变量的 freqz 函数,将在当前图形窗口中绘制出幅频和相频 曲线。例:采用脉冲响应不变法设计一个低通切比雪夫I型数字滤波器,技 术指标为:通带频率是300Hz,阻带频率是500Hz,采样频率是1000Hz, 通带波纹A = 0.3 dB,阻带衰减A = 60 dB。程序如下:pswap=2*pi*300;was=2*pi*500;%通带、阻带截止频率rp=0.3;rs=60;%通带、阻带衰减fs=1200;%采样频率N,wn二cheb1ord(wap,was,rp,rs,s);%选择滤波器的最小阶数z,p,k二cheb1ap(N,rp);%创建切比雪夫I型模拟低通滤波器, z、 p、 k 分别为滤波器传递函数的零点、极点和增益b,a=zp2tf(z,p,k);% 系统零极点增益模型转换成系统函数模型 Ha (p)abt,at=lp2lp(b,a,wn); 归一化转换为 Ha (s)abz,az=impinvar(bt,at,fs);器转换为数字滤波器h,f=freqz(bz,az,512,fs);hdb=20*log10(abs(h);%低通到低通的变换即H (p)去a%脉冲响应不变法将模拟滤波%求幅频响应subplot(1,2,1);plot(f,abs(h)xlabel(频率/Hz);ylabel(幅值)subplot(1,2,2);plot(f,hdb)xlabel(频率/Hz);ylabel(幅值(db)执行结果如图所示。四、实验内容与步骤:100-10-20-30-40-50七00 100 200 300 400 500 频 率 /Hz1将上例输入计算机运行,分析结果2将上例中的滤波器换成巴特沃思模拟低通滤波器,写出程序并运行分析结果。实验三 用双线性变换法设计 IIR 数字滤波器一、实验目的:(1) 了解 butter.m 文件的各参数及使用方法;(2) 学习双线性变换法设计IIR数字滤波器的设计方法。二、实验设备:计算机,MATLAB软
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号