收藏 分销(赏)

Matlab和信号处置(信号处置)专题培训课件.ppt

上传人:天**** 文档编号:2827602 上传时间:2024-06-06 格式:PPT 页数:79 大小:659.50KB
下载 相关 举报
Matlab和信号处置(信号处置)专题培训课件.ppt_第1页
第1页 / 共79页
Matlab和信号处置(信号处置)专题培训课件.ppt_第2页
第2页 / 共79页
Matlab和信号处置(信号处置)专题培训课件.ppt_第3页
第3页 / 共79页
Matlab和信号处置(信号处置)专题培训课件.ppt_第4页
第4页 / 共79页
Matlab和信号处置(信号处置)专题培训课件.ppt_第5页
第5页 / 共79页
点击查看更多>>
资源描述

1、4、基于MATLAB的数字信号处理4.1 4.1 信号产生信号产生4.2 4.2 离散系统的离散系统的MATLABMATLAB实现实现4.3 4.3 变换的变换的MATLABMATLAB实现实现4.4 4.4 数字滤波器设计数字滤波器设计4.5 4.5 功率谱估计功率谱估计14.1 信号产生l信号的表示信号的表示x(n)=x(n)=,x(-2),x(-1),x(0),x(1),x(2)Matlab中,信号都是用矩阵(向量)描述例如:x=4 3 7 9 1l典型离散信号表示典型离散信号表示单位抽样序列 x=zeros(1,N);x(1)=1;(n)x(k)=1;(n-k)单位阶跃序列:x=one

2、s(1,N);2波形的产生波形的产生首先产生时间:如t=0:0.01:2*pi;产生信号:如 y=sin(2*t+pi/4);square sawtooth sinc 噪声的产生噪声的产生rand,randn3 周期波形产生函数名功能Sawtooth(t,width)产生锯齿波或三角波.Width确定最大值位置Square(t,duty)产生方波。Duty指定正半周期的比例Sinc(t)产生sinc或sin(pi*t)/(pi*t)Diric(t,n)产生Dirichlet函数4sawtooth(t,0.7)square(t)sinc(t)diric(t,5)5l信号的常规操作信号加x=x1+

3、x2信号必须等长对齐信号乘x=x1.*x2信号必须等长对齐改变比例x=a*x1移位x=x1(n-k)6折叠y=x(-n)取样和y=sum(x(n1:n2)取样积y=prod(x(n1:n2)卷积y=conv(x,h)y,ny=conv_m(x,nx,h,nh)相关r=xcorr(x,y)7l产生数据产生数据直接键盘输入直接键盘输入利用函数产生,如利用函数产生,如sin,cos,sawtooh等等用用Matlab从从.Mat文件导入文件导入通过文件读写产生数据,如通过文件读写产生数据,如fopen,fread等等用一个用一个.M文件专门产生数据文件专门产生数据84.2 离散系统的MATLAB实现

4、离散系统的表示方法:离散系统的表示方法:LSI系统的时域表示系统的时域表示 常系数线性差分方程 单位抽样响应h(n)LSI系统的频域表示系统的频域表示 频率响应(DFT)转移函数(z变换)零极点增益 二次分式 离散系统的内部描述离散系统的内部描述 9l离散系统的输入输出的差分方程:离散系统的输入输出的差分方程:l单位抽样响应单位抽样响应?filter函数y=filter(b,a,x)impz函数y=impz(b,a)1011l频率响应?h,f=freqz(b,a,n,fs)1213l 零极点增益?14l离散系统的表示方法转换函数 tf2zp sos2tf tf2ss sos2zp zp2tf

5、sos2ss zp2sos ss2tf zp2ss ss2zp ss2sos15 4.3 变换的MATLAB实现1、DFT16计算 DFT并画图 1718192、FFT 可利用内部函数fft进行计算,速度快。y=fft(x,n)x的n点fft x=ifft(y,n)203、z变换R,P,K=residuez(b,a);214、DCTly=dct(x,n)lx=idct(y,n)22rp=84.3566235、Hilbert变换l 解析信号 l DFT方法求解l 函数y=Hilbert(x)24(1)数字滤波器的基本概念数字滤波器的基本概念(2)基于)基于MATLAB的的IIR滤波器设计滤波器设

6、计(3)基于基于MATLAB的的FIR滤波器设计滤波器设计4.4 基于基于MATLAB的数字滤波器设计的数字滤波器设计25(1)数字滤波器的基本概念数字滤波器的基本概念l数字滤波器数字滤波器 对数字信号进行滤波的线性时不变系统。l数字滤波器的分类数字滤波器的分类 IIR数字滤波器:设计经典选频滤波器,性能好,阶数低。FIR数字滤波器:设计线性相位经典滤波器,适用范围广、阶数高。26l数字滤波器的设计步骤数字滤波器的设计步骤1)按照实际任务的要求,确定滤波器的技术指标。2)用一个因果、稳定的离散线性时不变系统的系统函数 去逼近这一网络性能。根据不同的要求可选择IIR或者 FIR系统函数去逼近。3

7、)利用有限精度算法实现系统函数。27lIIR数字滤波器一般有两种设计方法:1)模拟原型法 先设计一个合适的模拟滤波器,然后再变 换为满足要求的数字滤波器。2)直接法 直接在离散时域和离散频域进行数字滤波 器的设计 28lFIR一般有三种设计方法:窗函数法 频率取样法 切比雪夫逼近法 29(2)基于基于MATLAB的的IIR滤波器设计滤波器设计lButterworth数字滤波器设计数字滤波器设计l椭圆数字滤波器设计椭圆数字滤波器设计lChebyshev-I数字滤波器设计数字滤波器设计lChebyshev-II数字滤波器设计数字滤波器设计30lButterworth数字滤波器设计数字滤波器设计 M

8、ATLAB语句:b,a=butter(n,wn)(1)b,a=butter(n,wn,ftype)(2)z,p,k=butter()(3)a,b,c,d=butter()(4)语句(1)(4)都可以设计一个阶数为n,截止频率为wn的数字低通滤波器。对于语句(2),若参数ftype取hi-gh或stop,则可以来设计相应的高通或带阻滤波器。返回值a和b为系统函数的分子和分母的系数。31系统函数为:返回值z,p,k分别是滤波器的零点、极点和增益。返回值A、B、C、D构造滤波器的状态方程。状态方程为:其中u是输入信号,x是状态变量,y是输出信号。32例例:设计一个阶数为9阶、截止频率为300Hz的高

9、通 Butterworth滤波器,采样频率为1000。并画出它的频率特性。程序:n=9;wn=300/500;b,a=buffer(n,wn,high);freqz(b,a,128,1000);33Buttordworth高通滤波器的频率响应34 n=235例例 设计一个10阶的带通Butterworth滤波器,它的通带 范围是100200Hz,采样频率为1000。并画出它的频率特性和冲击响应。程序:n=10;wn=100 200/500;b,a=butter(n,wn);freqz(b,a,128,1000);y,t=impz(b,a,101);stem(t,y);36 Buttordwor

10、th带通滤波器的频率响应37Buttordworth滤波器的时域冲击响应38l椭圆数字滤波器设计椭圆数字滤波器设计 MATLAB语法:b,a=ellip(n,Rp,Rs,wn)(5)b,a=ellip(n,Rp,Rs,wn,ftype)(6)z,p,k=ellip()(7)a,b,c,d=ellip()(8)语句(5)(8)都可以设计一个阶数为n,截止频率为wn,通带波纹最大衰减为Rp、阻带波纹最小衰减为Rs的数字低通滤波器。对于语句(6),若参数ftype取high或stop,则可以来设计相应的高通或带阻滤波器。返回值a和b为系统函数的分子和分母的系数。返回 39值z,p,k分别是滤波器的零

11、点、极点和增益。返回值A、B、C、D可以用来构造滤波器的状态方程。例例 采样频率为1000Hz,请设计一个阶数为6阶、截止频 率为300Hz的低通ellip数字滤波器。其中滤波器在通 带的波纹为3dB,阻带的波纹为50dB。程序:b,a=ellip(6,3,50,300/500);freqz(b,a,512,1000);title(n=6 低通椭圆滤波器);40椭圆低通滤波器的频率响应41例例 设计一个10阶的带通滤波器,通带范围为100200Hz,信号的采样频率为1000Hz,滤波器在通带的波纹为0.5 dB,阻带的波纹为20dB。设计出这个滤波器并画出它 的冲击响应。程序:b,a=elli

12、p(10,0.5,20,100 200/500);y,t=impz(b,a,101);freqz(b,a,128,1000);stem(t,y);title(n=10 带通椭圆滤波器);42椭圆带通滤波器的频率响应43椭圆滤波器的冲击响应44lChebyshev-I数字滤波器设计数字滤波器设计 MATLAB语法:b,a=cheby1(n,Rp,wn)(9)b,a=cheby1(n,Rp,wn,ftype)(10)z,p,k=cheby1()(11)a,b,c,d=cheby1()(12)语句(9)(12)都可以设计一个阶数为n,截止频率为wn,通带波纹最大衰减为Rp的数字低通滤波器。对于语句(

13、10),若参数ftype取high或stop,则可以来设计相应的高通或带阻滤波器。返回值a和b为系统函数的分子和分母的系数。返回45值z,p,k分别是滤波器的零点、极点和增益。返回值A、B、C、D可以用来构造滤波器的状态方程。例例 对采样频率为1000Hz的采样信号,设计一个阶数为9 阶,截止频率为300Hz的低通cheby1数字滤波器,其 中滤波器在通带的波纹为0.5dB。程序:b,a=cheby1(9,0.5,300/500);freqz(b,a,512,1000);46 Chebyshev-I数字低通滤波器的频率响应47lChebyshev-II数字滤波器设计数字滤波器设计 MATLAB

14、语法:b,a=cheby2(n,Rs,wn)(13)b,a=cheby2(n,Rs,wn,ftype)(14)z,p,k=cheby2()(15)a,b,c,d=cheby2()(16)语句(13)(16)都可以设计一个阶数为n,截止频率为wn,阻带纹波最小衰减为Rs的数字低通滤波器。对于语句(13)式,若参数ftype取high或stop,则可以来设计相应的高通或带阻滤波器。返回值a和b为系统函数的分子和分母的系数。返回48值z,p,k分别是滤波器的零点、极点和增益。返回值A、B、C、D可以用来构造滤波器的状态方程。例例 对于采样频率为1000Hz的信号,设计一个阶数为9阶,截止频率为300

15、Hz的低通Chebyshev-II数字滤波器,其中滤波器在阻带的波纹为20dB。程序:b,a=cheby2(9,20,300/500);freqz(b,a,512,1000);49 Chebyshev-II数字低通滤波器的频率响应 50(3)基于)基于MATLAB的的FIR滤波器设计滤波器设计l窗函数法设计窗函数法设计FIR数字滤波器数字滤波器l频率取样法频率取样法l切比雪夫逼近法设计切比雪夫逼近法设计FIR滤波器滤波器51l 窗函数法设计窗函数法设计FIR数字滤波器数字滤波器 时域中进行的 常见的窗函数 w=boxcar(n)w=triang(n)w=hanning(n)w=hamming(

16、n)w=blackman(n)w=chebwin(n,R)w=bartlett(n)w=kaiser(n,)52例:用8种窗函数设计数字低通滤波器。采样频率 1000Hz,截止频率200Hz,滤波器阶数81。程序:5354利用利用fir1函数设计滤波器函数设计滤波器(窗函数法)窗函数法)MATLAB语法:b=fir1(n,wn)b=fir1(n,wn,ftype)b=fir1(n,wn,window)b=fir1(n,wn,ftype,window)55例例:设计一个阶数为48,通带范围为 0.350.65的带通FIR线性相位滤波器,并分析它的频率特性。程序:b=fir1(48,0.35,0.

17、65);freqz(b);56 利用FIR1设计的带通滤波器的频率响应57利用利用kaiserord函数求凯赛窗函数的参数函数求凯赛窗函数的参数 MATLAB语法:n,wn,beta,ftype=kaiserord(f,a,dev)n,wn,beta,ftype=kaiserord(f,a,dev,Fs)例例 利用凯赛窗函数设计一个低通FIR数字滤波器,通带 范围是01000Hz,阻带范围是15004000Hz,通带 的波纹最大为0.05,阻带的波纹最大为0.01。采样频 率为8000Hz。58 程序:fsamp=8000;fcuts=1000 1500;mags=1 0;devs=0.05

18、0.01;n,wn,beta,ftype=kaiserord(fcuts,mags,devs,fsamp);b=fir1(n,wn,ftype,kaiser(n+1,beta);freqz(b);59 利用凯赛窗设计的低通滤波器的频率响应60利用利用fir2函数设计任意响应函数设计任意响应FIR数字滤波器数字滤波器 MATLAB语法:b=fir2(n,f,m)b=fir2(n,f,m,window)b=fir2(n,f,m,npt)b=fir2(n,f,m,npt,window)b=fir2(n,f,m,npt,lap)61例例 设计一个60阶的滤波器,要求设计的滤波器在0 的幅度响应为1,在

19、 到 的幅度响应为 ,在 到 的幅度响应为 ,在 到 的 幅度响应为 ,在 到 的幅度响应为 。并画 出该滤波器和理想滤波器的幅频响应曲线,进行比较。程序:f=0,0.125,0.125,0.25,0.25,0.5,0.5,0.75,0.75,1;m=1,1,0.5,0.5,0.25,0.25,1/6,1/6,0.125,0.125;b=fir2(60,f,m);h,w=freqz(b);plot(f,m,w/pi,abs(h);62 用fir2设计的任意响应的滤波器与理想滤波器比较63l 切比雪夫逼近法设计FIR滤波器 采用最大误差最小准则方法设计滤波器 优化问题 雷米兹(REMEZ)算法

20、较成功的设计线性相位滤波器的方法64利用利用remez函数设计函数设计FIR数字滤波器数字滤波器 MATLAB语法:b=remez(n,f,m)b=remez(n,f,m,w)b=remez(n,f,m,ftype)b=remez(n,f,m,w,ftype)65其它的MATLAB函数:firls remezord fircs fircls1 cremez firrcos 66l IIR与FIR数字滤波器的比较在相同的技术指标下,IIR可以用比FIR较少的阶数来满足要求;FIR可得到严格的线性相位;IIR的设计可利用模拟滤波器的结果IIR主要设计规格化的滤波器,而FIR较灵活,可是任意响应的滤

21、波器,适应性较广。67n一维信号处理:信号滤波信号:s1=sin(2*pi*t*5);s2=sin(2*pi*t*15);s3=sin(2*pi*t*30);S=s1+s2+s3滤波器:b,a=ellip(4,0.1,40,10 20*2/Fs);H,w=freqz(b,a,512);滤波后的结果sf=filter(b,a,s);685 功率谱估计 概念:平稳随机信号的功率谱密度(PSD)是自相关序列的离散时间傅立叶变换69 功率谱估计的方法70经典功率谱估计方法l直接法(周期图法)直接由傅立叶变换而得来的。71例子:直接法计算功率谱利用FFT直接法:Fs=1000;NFFT=1024;n=0

22、:1/Fs:1;x=sin(2*pi*40*n)+4*sin(2*pi*100*n)+randn(size(n);%噪声序列X=fft(x,NFFT);Pxx=abs(X).2/length(n);%求解PSDt=0:round(NFFT/2-1);k=t*Fs/NFFT;P=10*(log10(Pxx(t+1);plot(k,P)xlabel(Frequency(Hz);ylabel(PSD(dB/Hz);7273利用periodogram函数:Fs=1000;NFFT=1024;n=0:1/Fs:1;x=sin(2*pi*40*n)+4*sin(2*pi*100*n)+randn(size

23、(n);%噪声序列window=boxcar(length(x);Pxx,f=periodogram(x,window,NFFT,Fs);%求PSDPlot(f,10*log10(Pxx)74直接法功率谱图75l间接法(自相关法或BT法)其理论基础是维纳-辛钦定理。其方法是先由随机信号N个观察值估计出自相关函数 ,然后再求 的傅立叶变换。76例子:间接法求功率谱估计Fs=2000;NFFT=1024;n=0:1/Fs:1;x=sin(2*pi*100*n)+4*sin(2*pi*500*n)+randn(size(n);%噪声序列Cx=xcorr(x,unbiased);%计算序列的自相关函数Cxk=fft(Cx,NFFT);Pxx=abs(Cxk);%求解PSDt=0:round(NFFT/2-1);k=t*Fs/NFFT;P=10*(log10(Pxx(t+1);plot(k,P)title(自相关法功率谱估计);xlabel(Frequency(Hz);ylabel(PSD(dB/Hz);77间接法功率谱图78l改进法:Welch法(psd、pwelch)lAR模型功率谱估计 79

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 职业教育

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服