第十一章Matlab的综合应用.ppt

上传人:本田雅阁 文档编号:2627397 上传时间:2019-04-24 格式:PPT 页数:149 大小:2.66MB
返回 下载 相关 举报
第十一章Matlab的综合应用.ppt_第1页
第1页 / 共149页
第十一章Matlab的综合应用.ppt_第2页
第2页 / 共149页
第十一章Matlab的综合应用.ppt_第3页
第3页 / 共149页
亲,该文档总共149页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第十一章Matlab的综合应用.ppt》由会员分享,可在线阅读,更多相关《第十一章Matlab的综合应用.ppt(149页珍藏版)》请在三一文库上搜索。

1、第十一章 Matlab的综合应用,Matlab在“电路”中的应用 Matalb在电力系统中的应用 Matlab在“信号与系统”中应用 Matlab在“数字信号处理”中的应用 Matlab在“图像处理”中的应用,第一节 Matlab在“电路”中的应用,【例11-1】 图11-1(a)所示电路原来处于稳定状态,已知 当 时,闭合开关,试求电容电压和经过的电流,并画出 和 的波形。,(a),(b),图11-1 例 11-1 的图 (a)电路结构图 (b)戴维南等效电路图,解:当 时 , ,故有 。 当 时, 开关合上后经过无限长时间电路达到新的稳定 状态,将达到新的稳定状态的电路,用戴维南等效等效后

2、, 如图11-1(b)所示。 其开路电压为 等效电阻 时间常数 利用三要素公式有, 而要求 ,则要回到原电路中去求, 故 于是有 。,Matlab代码为: t=0:0.0001:0.01; subplot(2,1,1) uc=-2+5*exp(-500*t); plot(t,uc) ylabel(uc(t)/v,fontsize,8) axis(-0.01 0.05 -4 4) subplot(2,1,2) it=4-2.5*exp(-500*t); plot(t,it,k) ylabel(i(t)/A,fontsize,8) axis(-0.01 0.05 -10 10),程序运行结果如图1

3、1-2所示:,图11-2 一阶动态电路的时间响应,在 时,开关S位于“1”位置,电路已处于稳定状态。 (1) 时,开关S闭合到“2”,求 ,并画出它们的波形; (2)若经10秒,开关S又复位到“1”,求 ,并画出它们的 波形。,图11-3 【例 11-2】的图,【例11-2】 如图11-3所示,已知,解:(1)开关处在位置“1”时 开关处在位置“2”时 时间常数 ,故用三要素公式得,(2)经10秒后,由于开关又回到“1”位置,故 的电流值恒为A,与时间无关。 将 代入表达式中,得 此时 ,时间常数 利用三要素公式得,subplot(211) t=0:0.01:20; uc=12+4*exp(-

4、t/4); plot(t,uc) ylabel(uc(t)/v,fontsize,8) iR2=1+(1/3)*exp(-t/4); subplot(212) plot(t,iR2) ylabel(iR2(t)/mA,fontsize,8),(1)的MATLAB代码,程序运行结果如图11-4所示:,图11-4 例11-2 的一阶动态电路的时间响应(1),(2)的MATLAB代码,figure subplot(2,1,1) t=0:0.1:10; uc=12+4*exp(-t/4); plot(t,uc) hold on t=10:0.1:20; ucc=16+(4*(exp(-2.5)-4)*

5、exp(-t/2+5); plot(t,ucc) ylabel(uc(t)/v,fontsize,8) axis(0 20 10 20),subplot(2,1,2) t=0:0.1:10; iR2=1+(1/3)*exp(-t/4); plot(t,iR2) hold on t=10:0.001:20; iR2=3; plot(t,iR2,b) hold on t=10; iR2=1:0.001:3; plot(t,iR2,k) ylabel(iR2(t)/mA,fontsize,8) axis(0 20 0 4),程序运行结果如图11-5所示:,图11-5 【例11-2】 的一阶动态电路的

6、时间响应,【例11-3】 求一阶低通电路的频率响应,并图示其幅频响应及相频响应特性, 电路 如图11-6所示。,图11-6 一阶低通电路,解:利用Matlab中求幅值函数abs和求相角函数angle可直接计算幅频响应和相频响应。 由分压公式,得低通电路的频率响应函数 式中 ,为截止频率。 设 ,画出幅频响应及相频响应。,Matlab代码如下: subplot(4,1,1) f=0:.2:4; Hf=1./(1+j*f); plot(f,abs(Hf) ylabel(abs(Hf),fontsize,8) subplot(4,1,2) plot(f,angle(Hf) ylabel(angle(

7、Hf),fontsize,8) subplot(4,1,3) semilogx(f,20*log10(abs(Hf) ylabel(abs(Hf)/DB,fontsize,8) subplot(4,1,4) semilogx(f,angle(Hf) ylabel(angle(Hf),fontsize,8),由图11-7的幅频特性可见,f1以后的幅值逐渐衰减,即f=1是截止频率的转折点,显然截止频率 。,同时,由图11-7可见,下面两个图选用的是横坐标为对数坐标的函数semilogx,这样在观察幅频和相频特性时更直观些。,程序运行结果如图11-7所示。,图11-7 一阶低通电路的频域响应,第二节

8、 Matalb在电力系统中的应用,【例11-4】 单相桥式整流电路的Simulink仿真。 步骤一:建立仿真模型 图11-8所示为一个在Simulink环境下创建的工频交流单相 桥式整流电路模型,其中各个模块均取自Simulink模块组 和SimPowerSystems模块组,将各个模块从库中提取出来 放到模型编辑窗中适当的位置,并将相关模块用信号线连 接起来构成仿真模型。,图11-8 单相桥式整流电路模型,步骤二:设置模块参数 (1)脉冲发生器 本系统中的触发信号是通过设置两组脉冲发生 器(Pulse Generator)来实现的,两个脉冲互差180, 也即0.01s,phase delay

9、项中的值为脉冲的初相位 滞后主系统时钟的时间,若设置控制角为30, 则该处的脉冲延时应滞后换相点0.01/6 S,其参数 如下图11-9 所示。,图11-9 脉冲发生器的参数设置,(2)晶闸管模块 四个晶闸管(Thyristor)模块在仿真中是由下图11-10 实现的:,图11-10晶闸管仿真模型原理,它由一个电阻Ron、一个电感Lon、一个直流电压源Vf和一个开关串联组成。开关受逻辑信号控制,该逻辑信号由电压Vak、电流Iak和门极触发信号g决定。参数意义分别为: Ron:晶闸管模块内电阻Ron Lon :晶闸管模块内电感Lon Forward voltage Vf(V):晶闸管模块的正向管

10、压降Vf,Initial current Ic(A):初始电流Ic Snubber resistance Rs(ohms):缓冲电阻Rs Snubber capacitance Cs(F): 缓冲电容Cs 晶闸管的参数设置界面如图11-11所示:,图11-11 晶闸管模块的参数设置,(3)阻感负载 本模型中的负荷用的是阻感型的并且为大电感 (L10R),串联RLC元件模块 R=3, L=0. 1H,其中电容参数设置成inf(无穷大),这样对有波动的信号电容就相当于一条导线。阻感负载模块参数设置界面如图11-12所示:,图11-12 负载的参数设置,(4)示波器 示波器(Scope)的默认设置只

11、有一路输入,点击功能按钮 在弹出的对话框中将Number of axes的值设置成7就变成了7路输入的示波器了,分别把各路输入量用信号线引入7路示 波器中。 步骤三:设置仿真参数 仿真参数设置如下:选择ode23tb算法,将相对误差设置为 1e-3,开始仿真时间设置为0,结束仿真时间设置为0.1,其 余参数均采用默认值。 步骤四:启动仿真并分析仿真结果 点击主菜单中的按钮来启动仿真,如果模型中有些参数设置有误,则会出现错误信息提示框。如果一切设置无误,则开始仿真运行,结束时系统会发出一鸣叫声。仿真得出的波形如图11-13 所示:,图11-13 仿真输出波形,【例11-5】 三相桥式整流电路的S

12、imulink仿真。 步骤一:建立仿真模型,图11-14 三相桥式整流电路模型,步骤二:设置模块参数 (1)通用整流桥模块 在Simulink模块库中的通用整流桥模块如图11-15所示:,图11-15 通用整流桥模块,A、B、C端子:分别为三相交流电源的相电压输入端子; g端子:为触发脉冲输入端子,如果选择为电力二极管,无此端子; “、”端子:分别为整流器的输出和输入端子,在建模时需要构成回路。,通用桥臂模块参数设置方法如下: Number of bridge arms: 桥臂数量,可以选择1、2、3相桥臂, 构成不同形式的整流器 Snubber resistance Rs(ohms): 缓冲

13、电阻Rs Snubber capacitance Cs(F): 缓冲电容Cs Power Electronic device: 电力电子器件类型,可以当做多种器件的 整流桥,可以选择的有: 电力二极管(Diodes)、 晶闸管(Thyristors)、 门极可关断晶闸管(GTO)、 绝缘栅双极型晶体管(IGBT)等主要器件。,Ron(ohms): 晶闸管的内电阻Ron ,单位为 Lon(H): 晶闸管的内电感Lon,单位为H, 电感不能设置为0 Forward voltage Vf(v): 晶闸管元件的正向管压降Vf,单位为V Measurements: 测量可以选择5种形式, 即: None

14、(无) Device voltages(装置电压) Device currents(装置电流) All voltages and currents(三相线电压与输出平均电压和所有电压、 电流,选择此项后需要通过万用表模块显 示),(2)同步脉冲触发器 同步脉冲触发器模块如图11-16所示,同步脉冲触发器用于触发三相全控 整流桥的6个晶闸管,脉冲依次送给三相全控整流桥对应编号的6个晶闸管。,图11-16 同步脉冲触发器,alpha_deg:此端子为脉冲触发角控制信号输 入,单位为度。 AB, BC, CA:三相同步电源的线电压输入即 Vab、Vbc、Vca,可用电压测 量模块分别测量相应的线电压

15、 并输入至此端口。 Block:触发器控制端,输入为“0”时开放触发 器,输入大于零时封锁触发器。 Pulses:6脉冲输出信号。,图11-17 所示为同步6脉冲触发器的参数设置窗口。,图11-17 同步6脉冲触发器参数设置,其中的参数含义如下: Frequency of synchronization voltages(Hz):同步电压频率(Hz) Pulse width(degrees) :触发脉冲宽度(度) Double pulsing:双脉冲触发选择 (3)三相交流电源通过频率为50 Hz、幅值220V、相位互差120的三 个单相交流电压源(AC Voltage Source),以中性

16、点接地的星形连 接实现。,(4)三相电压测量(U1)及与其串联的反相增益(Gain) 是用于制做负载波形的虚线底纹,并通过信号汇集元 件(Bus Creator)将底纹与负载波形综合到一起输入 至示波器。 (5)此模型中还应用了一个万用表模块,是用于测量通用 整流桥中1号晶闸管两端的电压,并输入至示波器显 示。 步骤三:设置仿真参数 设置仿真参数如下:选择ode23tb算法,将相对误差设置为 1e-3,开始仿真时间设置为0,结束仿真时间设置为0.1,其 余参数均采用默认设置。,步骤四:启动仿真并分析仿真结果 点击主菜单中的按钮来启动仿真,如果一切设置无误,则开 始仿真运行,结束时系统会发出一鸣

17、叫声。仿真得出的脉冲 触发波形如图11-18 所示:,图11-18 控制角为60时的触发脉冲,整流波形在输出时各路信号的波形的初始线型设置均为 实线且输出到示波器中的波形在默认情况下是不可编辑的, 这时可以在Matlab主命令窗口中输入以下两条命令:set(0,ShowHiddenHandles,On);set(gcf,menubar,figure);再回到示波器窗口会发现在窗口的最上边多了一行主菜单,选择Insert下的Axes命令后在波形上任意处双击就会在下方弹出一波形编辑窗口,在那里就可以任意修改输出波形的属性了。修改后的各路波形如图11-19 所示:,图11-19 控制角为60时的输出

18、波形,【例11-6】 电力系统输电线路的单相、三相重合闸的 Simulink仿真。 图11-20 所示为一简单电力系统网络结构,该系统电压 等级为220kV,为双电源供电系统,左侧为500MVA发电 机,右侧为无穷大电网。当在线路k点发生故障时由于保 护动作断路器QF1和QF2将跳闸切断故障线路以保证非故 障线路的正常运行。建立模型,仿真其重合闸过程并观察 故障相电流的恢复情况。,图11-20 重合闸电力系统网络结构图,在电力系统的故障中,大多数的故障是送电线路 (特别是架空线路)的故障。运行经验表明,架空线路 故障大多是“瞬时性”的,例如雷电引起的闪落、大风 引起的碰线等,线路断开后电弧即行

19、熄灭。因此,在路 被断路器切断后的一段时间再进行一次重合闸就有可能 大大提高供电的可靠性。,步骤一:建立仿真模型 根据图11-20,在simulink模块库中找到对应的模块并连接成如图11-21 所示的模型。,图11-21 自动重合闸系统的Simulink模型,该模型中同步发电机采用的是简化的有名值参数的 同步发电机模块(Simplified Synchronous Machine SI Units); 右端供电的无穷大电网采用的是同步三相电源模块 (Three-Phase Source);厂用三相负荷及用高压输送到变电 所的负荷均采用的是三相串联LRC负荷模块(Three-Phase Ser

20、ies RLC Load)。分布参数的输电线路(Distributed Parameter Line)、线性变压器(Three-Phase Transformer)及三相断路器 (Three-Phase Breaker)均取自SimPowerSystems 库中的 Elements 模块组中。,步骤二:设置模块参数 (1)同步发电机参数设置如图11-22 所示:,图11-22 同步发电机参数设置,(2)三相变压器参数设置如图11-23 所示:,图11-23 三相变压器参数设置,(3)150Km分布参数线路参数设置如图11-24 所示:,图11-24 150km线路参数设置,(4)100Km分布

21、参数线路的参数设置如图11-25 所示:,图11-25 100km线路参数设置,(5)三相电压源参数设置如图11-26 所示:,图11-26 三相电压源参数设置,(6)三相串联RLC负荷Load1参数设置(Load2、 Load3与其相同)如图11-27 所示:,图11-27 三相串联RLC负荷参数设置,(7)厂用三相串联RLC负荷Load G参数设置 如 图11-28 所示 :,图11-28 厂用三相串联RLC负荷参数,(8)断路器参数设置如图11-29所示:,图11-29 断路器参数设置,(9)三相电压电流测量模块参数设置如图11-30 所示:,图11-30 三相电压电流测量模块参数设置,

22、步骤三:仿真参数设置 选择ode23tb算法,将相对误差设置为1e-3,开始仿真时 间设置为0,结束仿真时间设置为1,其余参数均采用默认设置。 步骤四:启动仿真并分析仿真结果 点击主菜单中的按钮来启动仿真,如果一切设置无误,则开始仿真运行,结束时系统会发出一鸣叫声。仿真结束后得出故障点电压电流波形。,(1)线路单相自动重合闸的仿真分析 在对模块参数进行设置时,将断路器的故障相选为A相,断路器的初始状态为闭合,表示线路正常工作;断路器的转换时间设置为0.3 0.6,即线路在0.3s时发生A相接地短路,断路器断开,在0.6s时断路器重新闭合,相当于临时故障切除后线路进行重合闸。线路单相接地短路时,

23、母线端的电压和电流波形如图11-31 所示。,图11-31 单相自动重合闸故障点电压电流波形,由于系统为双电源供电系统,因此当线路发生单相接地短路时,断路器断开切除故障点,母线电压并没有多大的改变;在单相接地短路期间(0.30.6s),断路器A相断开,A相电流为0,非故障相的电流幅值减小;在故障切除后(0.6s后),重合闸成功,三相电流经过暂态后又恢复为稳定工作状态,达到新的稳态后,三相电流保持对称,相角互差120。,(2)线路三相自动重合闸的仿真分析 在对模块参数进行设置时,将断路器的故障相选为A相、 B相、C相,断路器的初始状态为闭合,表示线路正常工作; 断路器的转换时间设置为0.3 0.

24、6,即线路在0.3s时发生三相相间短路,断路器断开,在0.6s时断路器重新闭合,相当于临时故障切除后线路进行重合闸。线路三相短路时,母线端的 电压和电流波形如图11-32所示。三相电流经过暂态后又恢复为稳定工作状态,达到新的稳态后,三相电流保持对称,相 角互差120。,图11-32 三相自动重合闸故障点电压电流波形,第三节 Matlab在“信号与系统”中应用,a 连续时间信号与离散时间信号的卷积运算 b 周期信号的傅立叶级数系数谱线与周期的关系 c 非周期信号的傅立叶变换 d 周期信号的傅立叶变换 e 离散时间信号的移位和周期延拓运算,【例11-7】 已知 求,% 用符号函数syms和替换函数

25、subs实现卷积运算 syms t tao; xt1=exp(-t); xt2=exp(-2*t); % 用tao代替xt1中的t,用t-tao代替xt2中的t xt=subs(ut1,t,tao)*subs(ut2,t,t- tao); % 对xt积分,积分变量为tao,积分区间0-t, % 并使用函数simple使表达式简化 yt=simple(simple(int(ut,tao,0,t) ezplot(yt),Matlab代码如下:,图11-33 连续时间信号的卷积,程序运行结果如图11-33所示:,【例11-8】 已知 (1) 求 (2) 求 并图示各序列及其结果。,解:Matlab程

26、序如下: N1=10;N2=5; % 指数序列的长度是10,矩形序列的长度是5 subplot(3,2,1) n1=0:N1-1; x1=(0.5).n1; % 指数序列表达式 stem(x1) % 画指数序列x1 subplot(3,2,2) m=2; % 移位值 x2=zeros(1,N1); %为x2开辟一个数组空间 for k=m+1:m+N1 x2(k)=x1(k-m); % 将序列x1向右移2位生成序列x2 end stem(x2) % 画指数序列x2,subplot(3,2,3) n2=0:N2-1; h1=ones(1,N2); % 生成长度为5的矩形序列 h2=h1;stem

27、(n2,h1) % 画序列h1 subplot(3,2,4) stem(n2,h2) % 画序列h2 subplot(3,2,5) y1=conv(x1,h1); % 计算序列x1和h1的卷积 stem(y1) % 画序列y1subplot(3,2,6) y2=conv(x2,h2); % 计算序列x2和h2的卷积 stem(y2) % 画指数序列y2,程序运行结果如图11-34所示:,图11-34 序列的卷积运算,【例11-9】 已知周期矩形脉冲如图11-35所示,其周期为T,宽度为 ,幅值为1,求其傅立叶级数系数,并图示之。 其中,图11-35 周期为T,宽度为 的周期矩形脉冲,解:由信号

28、与系统知识知,矩形周期函数的傅立叶级数系数 Matlab程序如下:,T=input(input T= ); % 利用input函数在命令窗口输入周期 tao=input(input tao= ); % 利用input函数在命令窗口输入门宽 n=0:.1:3; omega=2*pi/T; w=n*omega; Fn=(tao/T)*sinc(n*omega*tao)/2); %周期矩形脉冲的傅立叶级数系数 stem(w,Fn) % 画傅立叶级数系数的谱线图 运行上面的程序,在Matlab命令窗口出现如下语句: input T= 输入4后,按回车键,在Matlab命令窗口出现如下语句: input

29、 tao= 输入2后,按回车键,得到11-36所示的图形。,图11-36 矩形信号傅立叶级数系数谱线 (T=4),若在命令窗口输入的周期为8,而门宽不变,重新运行上面 的语句,图形如图11-37所示。,图11-37 矩形信号傅立叶级数系数谱线 (T=8),【例11-10】 已知非周期矩形门函数为,即其幅值为1,门宽为,,求它的频谱函数,并图示之。,解:幅值为1,宽度为,的非周期矩形门函数的频谱函数为,Matlab代码如下: tao=input(enter gate width= ); w=-10:.1:10; F=tao*sinc(w*tao/2); plot(w,F) 运行上面的程序,在Ma

30、tlab命令窗口出现如下语句,enter gate width= 在上面的语句后输入门宽值,比如在此输入2,然 后再按回车键,则运行结果如图11-38所示,读者也可尝试输入其它的门宽值,观察其波形的变化。,图11-38 非周期矩形脉冲的傅立叶变换,【例11-11】 已知周期矩形脉冲如前图11-34所示,其周 期为 ,脉宽为 ,幅值为1,试求其傅立叶变换,并图 示之。,解:该周期函数的傅立叶变换 为: Matlab程序如下: w=-2:.1:2; % 设一个w范围 n=-2:.1:2; % 设一个n范围 F=(w-n)=0.*sinc(w); % 利用关系运算求F(jw) stem(w,F) %

31、 画F周期矩形脉冲的傅立叶变换图 axis(-30 30 -.4 1) % 调整坐标轴,以便观察,程序运行结果如图11-39所示:,图11-39 周期矩形信号的傅立叶变换,【例11-12】 已知 ,利用Matlab生成并图示 , 和 , 其中 , m为一个整常数, 。,解: 表示以6为周期的延拓, 表示将右移位后以6为周期的延拓,即序列的循环移位。序列的循环移位是通过Matlab的求余函数来实现的, 即 可实现对以M为周期的周期延拓,求余后加1是因为Matlab向量的下标索引只能从1开始。,Matlab代码如下: N=24; % 序列的长度设为24 m=input(输入移位值m= ); % 利

32、用input函数在命令窗口输入移位值 if (m=N)fprintf(输入数据不在规定范围内,请重新输入); break end n=0:N-1; % 序列的长度范围 x1=(.8).n; % 序列x1 x2=zeros(1,N); % 为序列x2开辟一个空间 for k=m+1:m+N; x2(k)=x1(k-m); end xc=x1(mod(n,8)+1); % 利用mod函数实现循环移位 xcm=x1(mod(n-3,8)+1); % 将序列右移3位后,再循环移位 subplot(2,2,1)stem(x1); % 序列x1 subplot(2,2,2)stem(x2); % 序列x2

33、 subplot(2,2,3)stem(xc); % 原序列的循环移位序列 subplot(2,2,4)stem(xcm) % 序列右移3位后得到的循环移位序列,运行上面的程序,移位值m=3。程序运行结果如图11-39所示:,图11-40 序列的循环移位,第四节 Matlab在“数字信号处理”中的应用,a. 序列的傅立叶变换(FT) b. 序列的离散傅立叶变换(DFT) c. 序列的快速傅立叶变换(FFT) d. FIR滤波器的设计 e. IIR滤波器的设计,【例11-13】 已知某序列,求其N点傅立叶变换(FT)和离散 傅立叶变换(DFT)。 解:Matlab程序如下: x=input(in

34、put sequence x= ); % 利用input函数在命令窗口输入序列 N=input(input N= ); % 利用input函数在命令窗口输入变换点数N w=2*pi*(0:127)/128; % 设置FT的横轴数据范围 X=x*exp(-j*1:length(x)*w); % 序列x 的傅立叶变换FT subplot(211) plot(w,abs(X) % FT的变换结果 set(gca,xtick,0:pi/2:2*pi); % 设置x轴的标度范围 set(gca,xticklabel,0 pi/2 pi 3pi/2 2pi); k=0:N-1; % 设置DFT的横轴数据范

35、围 XK=x*exp(-j*1:length(x)*(2*pi)*k)/N);% 计算序列x的离散傅立叶变换DFT subplot(212) stem(k,abs(XK) % DFT的变换结果,程序运行结果如图11-40所示:,图11-41 序列的FT和DFT,【例11-14】已知混合信号 利用快速傅立叶变换FFT对连续信号x(t)分别做不同 点数 的离散傅立叶变换,具体要求如下: (1)对x(t)做128点的快速傅立叶变换; (2)将128点补零为512点,再做512点的快速傅立叶变换; (3)对x(t)做512点的快速傅立叶变换。 快速傅立叶变换函数的调用格式为:XK=fft(x,N) ,

36、 x 是 被变换的序列,N是变换的点数。若变换点数与序列的长度 相同,N也可省略,本例就属此种情况。,解:首先对连续信号 进行采样,按奈奎斯特准则,选采样频率 ,则被采样后变为离散序列为 ,Matlab代码及运行结果如下: % 信号被采样后的128点DFT N=128; % 序列的长度 fs=100; % 采样频率 n=0:127; % 序列的长度范围 f1=20;f2=20.5;f3=40; % 3个信号的频率值xn=sin(2*pi*n*f1/fs)+sin(2*pi*n*f2/fs)+sin(2*pi*n*f3/fs); % 序列x(n) XK=fft(xn); % 对序列x(n)做12

37、8点FFT AXK=abs(XK); % 求XK的幅值 figure(1) % 开辟第一个图形窗口 subplot(2,1,1) % 在该图形窗口创建第一个子图 plot(n,xn) % xn的plot图形 subplot(2,1,2) % 创建第二个子图 f=fs*(0:63)/128; % 设定横轴的频率范围 plot(f,abs(XK(1:64) % 幅频特性(即频谱图),图11-42 混合信号的128点傅立叶变换,% 信号被采样后补零,由128点增为512点的DFT M=512; xn=xn zeros(1,M-N); % 将xn补充到512点 XK=fft(xn); AXK=abs(

38、XK); % 求XK的幅值 m=0:M-1; % 序列的长度范围 figure(2) % 开辟第二个图形窗口 subplot(2,1,1) % 在该窗口创建第一个子图 plot(m,xn) % xn的plot图形 f=fs*(0:M/2-1)/M; % 设定横轴的频率范围 subplot(2,1,2) % 创建第二个图形窗口 plot(f,AXK(1:256) % 幅频特性(即频谱图),图11-43 混合信号的补零512点傅立叶变换,% 信号被采样后的512点DFT n=0:511; % 序列的长度范围xn=sin(2*pi*n*f1/fs)+sin(2*pi*n*f2/fs)+sin(2*p

39、i*n*f3/fs); XK=fft(xn); AXK=abs(XK); % 求XK的模值 figure(3) % 开辟第三个图形窗口 subplot(2,1,1) % 在该窗口建立第一个子图 plot(n,xn) % xn的plot图形 f=(0:255)*fs/512; % 设定横轴的频率范围 subplot(2,1,2) % 建立第二个子图 plot(f,AXK(1:256) % xn的频谱图,图11-44 混合信号的512点傅立叶变换,【例11-15】 有一混合信号 设计一个FIR带通数字滤波器,要求该滤波器能将频率为55Hz的信号选择出来。 解:根据题中要求,选该带通滤波器的通带截止

40、频率选为0.4 0.6,滤波器的阶数为38。程序如下: fs=200; % 采样频率200Hz t=0:1/fs:1; % 时域信号的时间范围s=sin(2*pi*5*t)+sin(2*pi*35*t)+sin(2*pi*75*t); subplot(3,1,1) plot(t,s)axis(0 1 -4 4) % 调整坐标轴,以便观察信号,图11-45 混合信号波形,subplot(3,1,2) b=fir1(38,0.4 0.6,bandpass); % 设计题中所要求的滤波器 h,w=freqz(b,1,512); %求滤波器的幅频特性 plot(w*100/pi,20*log10(ab

41、s(h) % 画滤波器的幅频特性, % 幅值用对数表示 axis(0 100 -100 0) % 调整坐标轴,以便观察信号,图11-46 带通滤波器的幅频特性,subplot(3,1,3),sf=filter(b,1,s); % 对混合信号进行滤波 plot(t,sf) % 画滤波后的信号 axis(0.2 1 -1 1) % 调整坐标轴,以便观察滤波后的信号,图11-47 55Hz的信号,实际上,上面的代码运行后,所产生的三个图形 如图11-48所示:,图11-48 混合信号通过FIR带通滤波器前后的时域波形,【例11-16】 设计一个8阶IIR带通滤波器,利用该带通滤波器完成对混合信号的

42、滤波,混合信号,其中:,要求所设计的带通滤波器能将频率为15Hz的信号选择出来。,解:根据设计要求,选该IIR带通滤波器的上限截止频率为10Hz,下限截止频率为20Hz,利用契比雪夫cheby滤波器实现带通滤波。程序中还加入了对滤波前后信号的频谱分析,以便清楚地再现滤波效果。 Matlab程序如下: % 产生含有3个频率的正弦波混合信号 fs=100; % 采样频率 t=(1:100)/fs; % 混合信号的时间范围 s1=sin(2*pi*5*t);s2=sin(2*pi*15*t);s3=sin(2*pi*30*t); s=s1+s2+s3; subplot(221) plot(t,s);

43、 xlabel(time/s,fontsize,8),图11-49 混合信号波形,% 产生一个8阶的IIR带通滤波器,上限截至频率10Hz,下限截至频率20Hz % 并且对截止频率做了归一化处理 wn=10 20; b,a=cheby2(8,40,10 20*2/fs); % 用cheby2设计IIR滤波器 H,w=freqz(b,a,512); % 求滤波器的幅频响应 subplot(222) plot(w*fs/(2*pi),abs(H); % 画滤波器的幅频特性,图11-50 带通滤波器幅频特性,% 对混合信号进行滤波,选择出15Hz的信号 sf=filter(b,a,s); % 对混合

44、信号进行滤波 subplot(223) plot(t,sf); % 画滤波后的时域信号 xlabel(Time(seconds),fontsize,8);,图11-51 频率为15Hz的信号波形,% 画出滤波前后信号的频谱图 S=fft(s,512); % 混合信号的傅立叶变换 SF=fft(sf,512); % 滤波后的信号的傅立叶变换 w=((0:255)/512)*fs; % 设定横轴的频率范围 subplot(224) plot(w,abs(S(1:256),:) % 画混合信号的幅频特性 hold on % 保留上面的图形 plot(w,abs(SF(1:256); % 画滤波后信号

45、的幅频特性 xlabel(Frequency(Hz),fontsize,8);,图11-52 滤波前后的频谱图,实际上,上面的代码运行后,所产生的四个图形 如图11-53所示:,图11-53 混合信号通过IIR带通滤波器前后的时域与频域波形图,第五节 Matlab在“图像处理”中的应用,一、图像类型转换 1.gray2ind函数 该函数可以把灰度图像转换成索引图像。 调用格式为: X,map=gray2ind(I,n) 即按指定的灰度等级数n将灰度图像转换成索引图像X,n的默认值是64。,【例11-17】读入一幅灰度图像,利用函数gray2ind将其转换成索引图像。 I=imread(rice.png

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1