为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

Matlab傅里叶算法及数字滤波.doc

2017-11-24 9页 doc 109KB 66阅读

用户头像

is_353097

暂无简介

举报
Matlab傅里叶算法及数字滤波.docMatlab傅里叶算法及数字滤波.doc 实验一 用Matlab进行信号的一维快速傅立叶变换 一、 实验目的 1、了解傅立叶变换的物理意义:序列的离散傅立叶变换就是序列的离散频谱; 2、了解FFT,掌握FFT的函数调用格式; 3、应用FFT计算信号的频谱。 二、 实验原理:? 1、离散傅立叶变换(DFT)及其主要性质 DFT表示离散信号的离散频谱,DFT的主要性质中有奇偶对称特性,虚实特性等。通过实验可以加深理解。 对于单一频率的三角序列来说他的DFT谱线也是单一的。 2、利用DFT对信号进行频谱分析 D...
Matlab傅里叶算法及数字滤波.doc
Matlab傅里叶算法及数字滤波.doc 实验一 用Matlab进行信号的一维快速傅立叶变换 一、 实验目的 1、了解傅立叶变换的物理意义:序列的离散傅立叶变换就是序列的离散频谱; 2、了解FFT,掌握FFT的函数调用格式; 3、应用FFT计算信号的频谱。 二、 实验原理:? 1、离散傅立叶变换(DFT)及其主要性质 DFT示离散信号的离散频谱,DFT的主要性质中有奇偶对称特性,虚实特性等。通过实验可以加深理解。 对于单一频率的三角序列来说他的DFT谱线也是单一的。 2、利用DFT对信号进行频谱 DFT的重要应用之一是对时域连续信号的频谱进行分析,称为傅立叶分析,时域连续信号离散傅立叶分析的基本如图2。1所示。 Sc(t)?LPF?A/D?X?DFT?y(k) ? W(n) 其中混叠低通滤波LPF的引入,是为了消除或减少时域连续信号转换成序列时可能出现的频谱混叠的影响。实际工作中,时域离散信号x(n)的时宽是很长的甚至是无限长的。由于DFT之前,用一个时域有限的窗函数W(n)加到X(n)上是非常重要的。 3、 快速傅立叶变换 快速傅立叶变换是计算离散傅立叶变换的一种快速算法,为了提高运算速度,FFT将DFT的计算逐次分解成较小点数的DFT。按时间抽取的FFT算法把输入序列x(n)按其n值为偶数或奇次分解成越来越短的序列。按频率抽取的FFT算法把输入序列x(n)按其k为偶数或奇次分解成越来越短的序列。 三、 实验用MATLAB语言工具函数简介 MATLAB中计算序列的离散傅立叶变换和逆变换是采用快速算法,利用fft 和ifft函数实现。调用格式分别为[Xk]=fft(Xn,N)和[XN]=ifft(X,N)。 四、 实验与实验内容 1、 clear all >> fs=1000;N=200; >> n=0:N-1;t=n/fs; >> x=sin(2*pi*50*t)+sin(2*pi*120*t); >> x=x+randn(1,length(t)); >> y=fft(x,N); >> f=n*fs/N; >> mag=abs(y); >> subplot(2,2,1),plot(f,mag); >> xlabel('t');ylabel('x(t)'); >> title('x(t) N=200'); 实验3。(1) N=100; n=0:N-1; xn=3*(0.9+0.3*j).^n; XK=fft(xn,N); magXK=abs(XK); phaXK=angle(XK); subplot(3,2,1) plot(n,xn) xlabel('n');ylabel('x(n)'); title('x(n) N=100'); subplot(2,2,2) k=0:length(magXK)-1; stem(k,magXK,'.'); xlabel('k');ylabel('|X(k)|'); title('X(k) N=100'); 实验3。(2) clear all close all N=100; FS=1; n=0:1/FS:N-1; x=cos((2*pi/N)*n); subplot(3,1,1) plot(x); title('x=cos((2*pi/N)*n)'); xlabel('序列x(n)') grid on number=512; y=fft(x,number); z=0:length(y)-1; f=FS*z/length(y); subplot(3,1,3) plot(f,abs(y)); title('信号的FFT'); xlabel('频率Hz') grid on 实验3。(3) clear all close all FS=1; n=100; w=boxcar(n); subplot(3,1,1) plot(w) title('R(n)'); xlabel('序列x(n)') grid on number=512; y=fft(w,number); z=0:length(y)-1; f=FS*z/length(y); subplot(3,1,3) plot(f,abs(y)); title('信号的FFT'); xlabel('频率Hz') grid on 实验二 用MatlabIIR数字滤波器 五、 实验目的 熟悉模拟Batterworth滤波器设计和用双线性变换法设计数字IIR滤波器的方法。 六、 实验原理: 利用双线性变换法设计IIR滤波器。首先要设计出满足指标要求的模拟滤波器的传递函数Ha(s),r然后由Ha(s)通过双线性变换可得到所要设计的 IIR滤波器的系统函数H(z).如果给定的指标为数字滤波器的指标,则首先要转换为模拟域的指标。 1、低通数字滤波器的设计 2、高通数字滤波器的设计 3、带通数字滤波器的设计 4、带阻数字滤波器的设计 七、 实验用MATLAB语言工具函数简介 用双线性变换法设计IIR滤波器是IIR滤波器设计的经典方法,首先根据模拟滤波器的指标设计出相应的模拟滤波器,然后将设计好的模拟滤波器转化成满足给定技术指标的数字滤波器。在MATLAB的数字信号处理语言工具箱中提供了相应的设计函数,常用的有: 1、 Batterworth滤波器阶数选择函数 [N,Wn]=buttord(Wp,Ws,Rs) 2、 零极点增益模型到传递函数模型的转换 [num,den]=zp2tf(Z,P,K); 3、从低通到低通的转换 [b,a]=lp21p(Bap,Aap,Wn); 4、双线形变换函数 [bz,az]=bilinear(b,a,Fs); 八、 实验要求与实验内容 1、用双线性变换法设计Batterworth低通数字IIR滤波器,要求通带内频率低于0.2rad时,容许的幅度误差在1dB之内,频率在0.3rad到pi rad之间的阻带衰减大于10dB. >> clear all >> Wp=0.2*pi; >> Ws=pi; >> Rp=1; >> Rs=10; >> Fs=0.5; >> Ts=1/Fs; >> [N,Wn]=buttord(Wp,Ws,Rp,Rs,'s'); >> [Z,P,K]=buttap(N); >> [Bap,Aap]=zp2tf(Z,P,K); >> [b,a]=lp2lp(Bap,Aap,Wn); >> [bz,az]=bilinear(b,a,Fs); >> [H,W]=freqz(bz,az); >> plot(W*Fs/(2*pi),abs(H)); >> grid >> xlabel('频率/Hz') >> ylabel('幅度') >> clear all 实验三 用窗口法设计FIR数字滤波器 一、 实验目的 了解一个实际滤波器设计过程,加深掌握窗口法设计FIR数字滤波的原理和窗函数对滤波器的性能的影响。 二、 实验原理: 设所希望得到的滤波器的理想频率响应为Hd(e^jw).那么我们要寻找一个传递函数去逼近Hd(e^jw)。在这种逼近中最直接的一种方法是从单位取样的响应序列h(n)着手,使h(n)逼近理想的单位取样响应Hd(n),我们知道Hd(n)可以从理想频率响应Hd(e^jw)通过傅立叶反变换来得到。 三、 实验用MATLAB语言工具函数简介 1、矩形序列Rn(n) 调用格式:w=boxcar(n) 2、三角窗函数triang 调用格式:W=triang(n) 四、 实验要求与实验内容 clear all close all n=21; w=triang(n); b=fir1(20,0.5,w) freqz(b,1)
/
本文档为【Matlab傅里叶算法及数字滤波.doc】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索