ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:923.18KB ,
资源ID:8832868      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8832868.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MATLAB下的数字信号处理实现示例10号江城xin要点.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

MATLAB下的数字信号处理实现示例10号江城xin要点.docx

1、MATLAB下的数字信号处理实现示例10号江城xin要点MATLAB下的数字信号处理实现示例 附录一 信号、系统和系统响应 1、理想采样信号序列 (1)首先产生信号x(n),0=n=50 n=0:50; %定义序列的长度是50 A=444.128; %设置信号有关的参数 a=50*sqrt(2.0)*pi; T=0.001; %采样率 w0=50*sqrt(2.0)*pi; x=A*exp(-a*n*T).*sin(w0*n*T); %pi是MATLAB定义的,信号乘可采用“.*” close all %清除已经绘制的x(n)图形 subplot(3,1,1);stem(x); %绘制x(n)

2、的图形 title(理想采样信号序列); (2)绘制信号x(n)的幅度谱和相位谱 k=-25:25; W=(pi/12.5)*k; X=x*(exp(-j*pi/12.5).(n*k); magX=abs(X); %绘制x(n)的幅度谱 subplot(3,1,2);stem(magX);title(理想采样信号序列的幅度谱); angX=angle(X); %绘制x(n)的相位谱 subplot(3,1,3);stem(angX) ; title (理想采样信号序列的相位谱) (3)改变参数为:T=1, =2.0734, a=0.4, A=1n=0:50; %定义序列的长度是50 A=1;

3、%设置信号有关的参数 a=0.4; T=1; %采样率 w0=2.0734; x=A*exp(-a*n*T).*sin(w0*n*T); %pi是MATLAB定义的,信号乘可采用“.*” close all %清除已经绘制的x(n)图形 subplot(3,1,1);stem(x); %绘制x(n)的图形 title(理想采样信号序列); k=-25:25; W=(pi/12.5)*k; X=x*(exp(-j*pi/12.5).(n*k); magX=abs(X); %绘制x(n)的幅度谱 subplot(3,1,2);stem(magX);title(理想采样信号序列的幅度谱); angX

4、=angle(X); %绘制x(n)的相位谱 subplot(3,1,3);stem(angX) ; title (理想采样信号序列的相位谱) 2、单位脉冲序列 在MatLab中,这一函数可以用zeros函数实现: n=1:50; %定义序列的长度是50 x=zeros(1,50); %注意:MATLAB中数组下标从1开始 x(1)=1; close all; subplot(3,1,1);stem(x);title(单位冲击信号序列); k=-25:25; X=x*(exp(-j*pi/12.5).(n*k); magX=abs(X); %绘制x(n)的幅度谱 subplot(3,1,2);

5、stem(magX);title(单位冲击信号的幅度谱); angX=angle(X); %绘制x(n)的相位谱 subplot(3,1,3);stem(angX) ; title (单位冲击信号的相位谱) 4、特定冲击串:n=1:50; %定义序列的长度是50 x=zeros(1,50); %注意:MATLAB中数组下标从1开始 x(1)=1;x(2)=2.5;x(3)=2.5;x(4)=1; close all; subplot(3,1,1);stem(x);title(单位冲击信号序列); k=-25:25; X=x*(exp(-j*pi/12.5).(n*k); magX=abs(X)

6、; %绘制x(n)的幅度谱 subplot(3,1,2);stem(magX);title(单位冲击信号的幅度谱); angX=angle(X); %绘制x(n)的相位谱 subplot(3,1,3);stem(angX) ; title (单位冲击信号的相位谱) #在MATLAB中。提供了卷积函数conv,即y=conv(x,h),调用十分方便。例如: n=1:50; %定义序列的长度是50 hb=zeros(1,50); %注意:MATLAB中数组下标从1开始 hb(1)=1;hb(2)=2.5;hb(3)=2.5;hb(4)=1; close all; subplot(3,1,1);st

7、em(hb);title(系统hbn); m=1:50; %定义序列的长度是50 A=444.128; %设置信号有关的参数 a=50*sqrt(2.0)*pi; T=0.001; %采样率 w0=50*sqrt(2.0)*pi; x=A*exp(-a*m*T).*sin(w0*m*T); %pi是MATLAB定义的,信号乘可采用“.*” subplot(3,1,2);stem(x);title(输入信号xn); y=conv(x,hb); subplot(3,1,3);stem(y);title(输出信号yn); 6、卷积定律验证 k=-25:25; X=x*(exp(-j*pi/12.5)

8、.(n*k); magX=abs(X); %绘制x(n)的幅度谱 subplot(3,2,1);stem(magX);title(输入信号的幅度谱); angX=angle(X); %绘制x(n)的相位谱 subplot(3,2,2);stem(angX) ; title (输入信号的相位谱) Hb=hb*(exp(-j*pi/12.5).(n*k); magHb=abs(Hb); %绘制hb(n)的幅度谱 subplot(3,2,3);stem(magHb);title(系统响应的幅度谱); angHb=angle(Hb); %绘制hb(n)的相位谱 subplot(3,2,4);stem(

9、angHb) ; title (系统响应的相位谱) n=1:99; k=1:99; Y=y*(exp(-j*pi/12.5).(n*k); magY=abs(Y); %绘制y(n)的幅度谱 subplot(3,2,5);stem(magY);title(输出信号的幅度谱); angY=angle(Y); %绘制y(n)的相位谱 subplot(3,2,6);stem(angY) ; title (输出信号的相位谱) %以下将验证的结果显示 XHb=X.*Hb; figure,Subplot(2,1,1);stem(abs(XHb);title(x(n)的幅度谱与hb(n)幅度谱相乘); Sub

10、plot(2,1,2);stem(abs(Y);title(y(n)的幅度谱);axis(0,60,0,8000) %连续信号的傅里叶变化,在matlab中实现命令为fft( ),求连续信号的福谱图则用abs(fft(x)。n=0:15; %定义序列的长度是15 p=8;q=2; x=exp(-1*(n-p).2/q); close all; subplot(3,1,1); stem(abs(fft(x) p=8;q=4; x=exp(-1*(n-p).2/q); subplot(3,1,2); stem(abs(fft(x) p=8;q=8; x=exp(-1*(n-p).2/q); sub

11、plot(3,1,3); stem(abs(fft(x) n=0:15; %定义序列的长度是15 a=0.1;f=0.0625; x=exp(-a*n).*sin(2*pi*f*n); close all; subplot(2,1,1); stem(x); subplot(2,1,2); stem(abs(fft(x) for i=0:3 x(i)=i+1;x(i+4)=8-(i+4); end for i=8:15 x(i)=0; end close all; subplot(2,1,1); stem(x); subplot(2,1,2); stem(abs(fft(x,16) % fft(

12、x,16)求关于x的16个点的傅立叶变换附录三 窗函数法设计FIR滤波器 一、在MATLAB中产生窗函数十分简单: (1)矩形窗(Rectangle Window) 调用格式:w=boxcar(n),根据长度n产生一个矩形窗w。 (2)三角窗(Triangular Window) 调用格式:w=triang(n) ,根据长度n产生一个三角窗w。 (3)汉宁窗(Hanning Window) 调用格式:w=hanning(n) ,根据长度n产生一个汉宁窗w。 (4)海明窗(Hamming Window) 调用格式:w=hamming(n) ,根据长度n产生一个海明窗w。 (5)布拉克曼窗(Bla

13、ckman Window) 调用格式:w=blackman(n) ,根据长度n产生一个布拉克曼窗w。 (6)恺撒窗(Kaiser Window) 调用格式:w=kaiser(n,beta) ,根据长度n和影响窗函数旁瓣的参数产生一个恺撒窗w。 二、基于窗函数的FIR滤波器设计 利用MATLAB提供的函数firl 来实现 调用格式:firl (n,Wn,ftype,Window),n为阶数、Wn是截止频率,取值范围为0 Wn 1.0(如果输入是形如W1 W2的矢量时,本函数将设计带通滤波器,其通带为W1W2)、ftype是滤波器的类型(低通-省略该参数、高通-ftype=high、带阻-ftyp

14、e=stop)、Window是窗函数。 例 设计一个长度为8的线性相位FIR滤波器。 Window=boxcar(8); %产生长度为8的矩形窗b=fir1(7,0.4,Window); freqz(b,1) % freqz()计算滤波器的频率响应,此处freqz(b,1)等同于freqz(b),只是看作带分母且系数为1Window=blackman(8); %加布拉克曼窗b=fir1(7,0.4,Window); freqz(b,1) 例 设计线性相位带通滤波器,其长度N=15,上下边带截止频率分别为W1= 0.3,w2=0.5 Window=blackman(16); b=fir1(15,

15、0.3 0.5,Window); freqz(b,1) 设计指标为:p=0.2 Rp=0.25dB a=0.3 As=50dB 的低通数字FIR滤波器 wp=0.2*pi;ws=0.3*pi; tr_width=ws-wp; M=ceil(6.6*pi/tr_width)+1; N=0:1:M-1; wc=(ws+wp)/2; hd=ideal_lp(wc,M); w_ham=(boxcar(M); h=hd.*w_ham; db,mag,pha,grd,w=freqz_m(h,1); delta_w=2*pi/1000; Rp=-(min(db(1:1:wp/delta_w+1); As=-

16、round(max(db(ws/delta_w+1:1:501); Close all; subplot(2,2,1);stem(hd);title(理想冲击响应) axis(0 M-1 0.1 0.3);ylabel(hdn); subplot(2,2,2);stem(w_ham);title(汉明窗); axis(0 M-1 0 1.1);ylabel(wn); subplot(2,2,3);stem(h);title(实际冲击响应); axis(0 M-1 0.1 0.3);ylabel(hn); subplot(2,2,4);plot(w/pi,db); title(衰减幅度); ax

17、is(0 1 -100 10);ylabel(Decibles); 附录四 IIR滤波器的实现 MATLAB中滤波器的分析和实现 1、freqs函数:模拟滤波器的频率响应 例 系统传递函数为 的模拟滤波器,在MATLAB中可以用以下程序来实现: a=1 0.4 1; b=0.2 0.3 1; w=logspace(-1,1); %产生从10-1到101之间的50个等间距点,即50个频率点freqs(b,a,w) %根据输入的参数绘制幅度谱和相位谱 2、freqz函数:数字滤波器的频率响应 程序来实现: a=1 0.4 1; b=0.2 0.3 1; %根据输入的参数绘制幅度谱和相位谱,得到0到

18、之间128个点处的频率响应 freqz(b,a,128) 3、ButterWorth模拟和数字滤波器 (1)butterd函数:ButterWorth滤波器阶数的选择。 调用格式:n,Wn=butterd(Wp,Ws,Rp,Rs),在给定滤波器性能的情况下(通带临界频率Wp、阻带临界频率Ws、通带内最大衰减Rp和阻带内最小衰减Rs),计算ButterWorth滤波器的阶数n和截止频率Wn。 相同参数条件下的模拟滤波器则调用格式为:n,Wn=butterd(Wp,Ws,Rp,Rs,s) (2)butter函数:ButterWorth滤波器设计。 调用格式:b,a=butter(n,Wn),根据阶

19、数n和截止频率Wn计算ButterWorth滤波器分子分母系数(b为分子系数的矢量形式,a为分母系数的矢量形式)。 相同参数条件下的模拟滤波器则调用格式为:b,a=butter(n,Wn,s) 例 采样频率为1Hz,通带临界频率fp =0.2Hz,通带内衰减小于1dB(p=1);阻带临界频率fs=0.3Hz,阻带内衰减大于25dB(s=25)。设计一个数字滤波器满足以上参数。 n,Wn=buttord(0.2,0.3,1,25); b,a=butter(n,Wn); freqz(b,a,512,1); 4、Chebyshev模拟和数字滤波器 (1)cheb1ord函数:Chebyshev型滤波

20、器阶数计算。 调用格式:n,Wn=cheb1ord(Wp,Ws,Rp,Rs),在给定滤波器性能的情况下(通带临界频率Wp、阻带临界频率Ws、通带内波纹Rp和阻带内衰减Rs),选择Chebyshev型滤波器的最小阶n和截止频率Wn。 (2)cheby1函数:Chebyshev型滤波器设计。 调用格式:b,a=butter(n,Rp,Wn),根据阶数n、通带内波纹Rp和截止频率Wn计算ButterWorth滤波器分子分母系数(b为分子系数的矢量形式,a为分母系数的矢量形式)。 注:Chebyshev型滤波器所用函数和型类似,分别是cheb2ord、cheby2。 例 实现上例中的滤波器 n,Wn=

21、cheb1ord(0.2,0.3,1,25); b,a=cheby1(n,1,Wn); freqz(b,a,512,1); (1)脉冲响应不变法设计数字ButterWorth滤波器 调用格式:bz,az=impinvar(b,a,Fs),再给定模拟滤波器参数b,a和取样频率Fs的前提下,计算数字滤波器的参数。两者的冲激响应不变,即模拟滤波器的冲激响应按Fs取样后等同于数字滤波器的冲激响应。 (2)利用双线性变换法设计数字ButterWorth滤波器 调用格式:bz,az=bilinearb,a,Fs,根据给定的分子b、分母系数a和取样频率Fs,根据双线性变换将模拟滤波器变换成离散滤波器,具有分

22、子系数向量bz和分母系数向量az。 模拟域的butter函数说明与数字域的函数说明相同 b,a=butter(n,Wn,s)可以得到模拟域的Butterworth滤波器 例 采样频率为1Hz,通带临界频率fp =0.2Hz,通带内衰减小于1dB(p=1);阻带临界频率fs=0.3Hz,阻带内衰减大于25dB(s=25)。设计一个数字滤波器满足以上参数。 %直接设计数字滤波器 n,Wn=buttord(0.2,0.3,1,25); b,a=butter(n,Wn); freqz(b,a,512,1); %脉冲响应不变法设计数字滤波器 n,Wn=buttord(0.2,0.3,1,25,s); b,a=butter(n,Wn,s); freqs(b,a) bz,az=impinvar(b,a,1); freqz(bz,az,512,1) %双线性变换法设计ButterWorth数字滤波器 n,Wn=buttord(0.2,0.3,1,25,s); b,a=butter(n,Wn,s); freqs(b,a) bz,az=bilinear(b,a,1); freqz(bz,az,512,1)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1