1、中北大学课 程 设 计 说 明 书学生姓名: 学 学 院: 信息与通信工程学院 专 业: 电子信息工程 题 目: 信息处理信息实践: 信号的产生与带通滤波器的设计 指导教师: 职称: 2016 年 1 月 4 日中北大学课程设计任务书 15/16 学年第 一 学期学 院: 信息与通信工程学院 专 业: 电子信息工程 学 生 姓 名: 学 号: 学 生 姓 名: 学 号: 学 生 姓 名: 学 号: 课程设计题目:信息处理信息实践: 信号的产生与带通滤波器的设计 起 迄 日 期: 2016年1月4日2016年1月22日 课程设计地点: 学院楼201实验室 指 导 教 师: 王 玉 下达任务书日期
2、: 2016 年1 月 4 日课 程 设 计 任 务 书1设计目的:(1)通过实践对滤波器的知识有更好的认识和巩固;(2)熟悉滤波器的设计方法及作用;(3)了解付氏变换的应用情况。 2设计内容和要求(包括原始数据、技术参数、条件、设计要求等):(1)产生三种不同频率的正弦信号并叠加,通过FFT变换得到频域图;(2)设计在200-300Hz的带通滤波器,并进行频谱分析;(3)对合成信号进行滤波,对滤波前后信号进行对比;(4)要求2位同学完成。3设计工作任务及工作量的要求包括课程设计计算说明书(论文)、图纸、实物样品等:(1)要求设计组的每个成员都要了解设计的要求和思路;(2)MATLAB数据处理
3、部分要求有正确的运行结果及结果分析;(3)对带通滤波器要求每位同学有自己的理解;(4)每位同学针对上述内容撰写设计说明书(每人1份)。课 程 设 计 任 务 书4主要参考文献:1 桂志国,杨民,陈友兴,郝丽华.数字信号处理原理及应用M.北京:国防工业出版社,2012,12 宋宇飞,潘子宇,魏峘.数字信号处理实验与学习指导M.北京:清华大学出版社,2012.83 赵谦.通信系统中MATLAB基础与仿真应用M.西安:西安电子科技大学出版社,2010.34 王彬,于丹,汪洋.MATLAB数字信号处理M.北京:机械工业出版社,2010.55 刘卫国.MATLAB程序设计与应用(第二版)M.北京:高等教
4、育出版社,20065设计成果形式及要求:课程设计说明书程序运行结果6工作计划及进度:2016年1月4日 1月6日:查资料,了解基于USB总线或PCI总线A/D卡的通用结构以及A/D采集卡的应用;1月7日 1月20日:在老师指导下完成课程设计内容;1月20日 1月22日:撰写课程设计说明书、答辩。负责人审查意见: 签字: 年 月 日目 录一 基于PCI总线A/D卡的报告11.特性12.布局图23.出厂设置24.关于零点、满度调节125.寄存器定义12二 设计内容13三 设计原理13四 MATLAB软件介绍15五 设计过程161.信号的产生162.对连续输入信号进行采样,进行频谱分析183.IIR
5、带通滤波器204.对信号进行滤波 22六 结果分析23七 心得体会及总结24参考文献25附录:总程序代码2551.基于PCI总线A/D卡的报告以北京中泰研创科技有限公司的PCI8335A为例进行说明1.1 特性模入部分: 输入通道数:单端32路,双端16路输入电压范围(跳线选择):4V,5V,10V,3.33V,5V,10V增益范围(程控):1,2,4,8(可定制其他增益范围)输入精度:16Bit最大采样频率:250KHz缓冲区(FIFO):8K启动转换方式:软件启动/定时/外触发启动模出部分:输出通道数:单端4路输出电压范围:5V,5V(可定制其他电压范围)输出精度:12Bit输出电压建立时
6、间:10uS到0.012%开关量部分:电平方式:TTL输入通道数:16路输出通道数:16路计数器部分:使用芯片:82C54兼容器件输入通道数:3路电源功耗: +5V500mA使用环境要求:工作温度: 050相对湿度:40%80%存贮温度:-40+120外形尺寸:长高=175.6mm X 98.3mm1.2 布局图(阴影部分是跳线出厂设置)1.3 出厂设置计数器控制(JP1)三个计数器全部外接DA输出范围(JP2)单极性05VAD输入方式(JP3)单端AD输入范围(JP4,JP5,JP6,JP7)单极性010V1.3.1 J1(模拟量输入和模拟量输出接口)D型头插座引脚号信号定义插座引脚号信号定
7、义1AD0(AD0+)20AD16(AD0-)2AD1(AD1+)21AD17(AD1-)3AD2(AD2+)22AD18(AD2-)4AD3(AD3+)23AD19(AD3-)5AD4(AD4+)24AD20(AD4-)6AD5(AD5+)25AD21(AD5-)7AD6(AD6+)26AD22(AD6-)8AD7(AD7+)27AD23(AD7-)9AD8(AD8+)28AD24(AD8-)10AD9(AD9+)29AD25(AD9-)11AD10(AD10+)30AD26(AD10-)12AD11(AD11+)31AD27(AD11-)13AD12(AD12+)32AD28(AD12-)
8、14AD13(AD13+)33AD29(AD13-)15AD14(AD14+)34AD30(AD14-)16AD15(AD15+)35AD31(AD15-)17AGND36DA118DA237DA319DA4注:ADx表示模拟量输入的第x通道,括号外的为单端定义,括号内的是双端定义AGND指模拟地,单端使用时为信号地为防止引入现场干扰,不应该使AD输入信号引脚悬空,可以将不使用的信号引脚与模拟地短路DAx表示模拟量输出的第x个通道1.3.2 J2(开关量输入输出和计数器输入接口40PIN)插座引脚号信号定义插座引脚号信号定义40PIN _1DI040PIN _2DI140PIN _3DI240
9、PIN _4DI340PIN _5DI440PIN _6DI540PIN _7DI640PIN _8DI740PIN _9DI840PIN _10DI940PIN _11DI1040PIN _12DI1140PIN _13DI1240PIN _14DI1340PIN _15DI1440PIN _16DI1540PIN _17DO040PIN _18DO140PIN _19DO240PIN _20DO340PIN _21DO440PIN _22DO540PIN _23DO640PIN _24DO740PIN _25DO840PIN _26DO940PIN _27DO1040PIN _28DO11
10、40PIN _29DO1240PIN _30DO1340PIN _31DO1440PIN _32DO1540PIN _33DGND40PIN _34DGND40PIN _35CLK040PIN _36CLK140PIN _37CLK240PIN _38OUT040PIN _39OUT140PIN _40OUT2注:DIx表示开关量输入的第x通道DOx表示开关量输出的第x通道CLKx表示计数器输入的第x通道OUTx表示计数器输出的第x通道DGND指开关量信号地为了用户接线方便,我们随卡提供一根转接线,把卡上的J2(40PIN)转换为DB37(37芯D型头),引到计算机机箱外部。DB37的引脚与开
11、关量等信号的对照关系见下表:插座引脚号信 号 定 义插座引脚号信 号 定 义DB37_1DI0DB37_20DI1DB37_2DI2DB37_21DI3DB37_3DI4DB37_22DI5DB37_4DI6DB37_23DI7DB37_5DI8DB37_24DI9DB37_6DI10DB37_25DI11DB37_7DI12DB37_26DI13DB37_8DI14DB37_27DI15DB37_9DO0DB37_28DO1DB37_10DO2DB37_29DO3DB37_11DO4DB37_30DO5DB37_12DO6DB37_31DO7DB37_13DO8DB37_32DO9DB37_
12、14DO10DB37_33DO11DB37_15DO12DB37_34DO13DB37_16DO14DB37_35DO15DB37_17DGNDDB37_36DGNDDB37_18CLK0DB37_37CLK1DB37_19CLK2注:DIx表示开关量输入的第x通道DOx表示开关量输出的第x通道CLKx表示计数器输入的第x通道DGND指开关量信号地1.3.3 JP4、JP5、JP6、JP7(模拟量输入范围选择跳线)对应关系如图所示:1.3.4 JP3(模拟量输入单双端选择跳线)对应关系如图所示:1.3.5 JP2(模拟量输出单双极性跳线)对应关系如图所示:1.3.6 JP1(计数器配置跳线)用
13、户可以使用此跳线组合进行如下功能:发出步进电机控制脉冲,频率测量,外触发信号输入。此跳线管脚对应关系如下:功能对照表如下:管脚号功能管脚号功能1与CLK0相连11与82C54的计数器2门信号相连2与82C54的计数器0输入相连12与外触发输入相连3内部脉冲(10M)13与82C54的计数器0输出相连4与CLK1相连14与82C54的计数器1输出相连5与82C54的计数器1输入相连15与82C54的计数器1门信号相连6与82C54的计数器0输出相连16与82C54的计数器0门信号相连7与CLK2相连17与82C54的计数器2输出相连8与82C54的计数器2输入相连18与开关量输入DI0相连9与8
14、2C54的计数器1输出相连19与外触发输入相连10与82C54的计数器2输出相连注意: 管脚1、管脚4、管脚7是通过逻辑器件7414连接到CLK0、CLK1、CLK2,所以测量用户输入脉冲时将使用下降沿计数。82C54的输出也是通过7414连接到最终的输出,所以最终J2上的计数器输出与82C54手册中的输出有一个反相的关系。1.4 关于零点、满度调节AD输入部分:使用程控电位器软件调节DA输出部分:使用电位器调节WZx:对应通道的零点调节,x为通道号WFx:对应通道的满度调节,x为通道号出厂时已经按照单极性调好,一般不需要调整,如果用户使用双极性信号输入,认为双极性零点、满度无法满足要求,可以
15、调节WZx、WFx以满足使用要求。1.5 寄存器定义对应地址操作意义基地址0写保留基地址0读FIFO有效时从FIFO中读取AD数据基地址4写 清FIFO,在自动切换通道方式下将当前通道号置0基地址4读软件启动时读取AD转换结果基地址8写设置16位开关量输出状态(Bit0Bit15)基地址8读读取16位开关量输入状态(Bit0Bit15)基地址12读/写返回/设置计数器0数值基地址16读/写返回/设置计数器1数值基地址20读/写返回/设置计数器2数值基地址24写设置82C54控制字基地址28写DA设置寄存器(具体DA操作方法请参考DAC7615数据手册):BIT0:对应SDI管脚BIT1:对应C
16、LK管脚BIT2:对应LOADREG管脚基地址28读启动DA转换基地址32读/写设置板卡寄存器BIT0:1,自动切换AD通道,0,软件切换AD通道BIT1BIT2:0,软件启动AD转换 1,定时启动AD转换 2,外同步时钟方式3,TTL信号触发启动“定时AD” 转换BIT3:写:1,使能FIFO半满中断 0,屏蔽FIFO半满中断 读:1,FIFO半满中断产生 0,没有产生半满中断BIT4:写:1,使能外触发中断 0,屏蔽外触发中断 读:1,外触发中断产生 0,没有产生外触发中断BIT5:写:1,使能AD转换结束中断 0,屏蔽AD中断读:1,AD转换结束中断产生 0,没有产生中断BIT6: 设置
17、外触发信号起作用方式,0, 表示高电平定时采集,低电平停止采集1, 表示EI上升沿开始定时采集。BIT7BIT11:保留BIT12:只读,0,FIFO满信号有效BIT13:只读,0,FIFO半满信号有效BIT14:只读,0,FIFO空信号有效BIT15:只读,0,AD正在转换基地址36写设置AD定时启动分频系数(39255)基地址40写数字电位器设置寄存器(具体操作请参考AD8402芯片手册)BIT0:SDIBIT1:CLKBIT2:CS基地址44写EEPROM设置寄存器(具体操作请参考24LC64芯片手册)BIT0:SDABIT1:SCLBIT2:SDA输出始能基地址48读写保留基地址52读
18、软件启动AD转换基地址52写当软件切换通道时,设置AD通道号(031)当自动切换通道时,设置终止AD通道号(031)基地址56写设置AD0AD7增益(每两位对应一个通道,顺次排列)基地址60写设置AD8AD15增益(每两位对应一个通道,顺次排列)基地址64写设置AD16AD23增益(每两位对应一个通道,顺次排列)基地址68写设置AD24AD31增益(每两位对应一个通道,顺次排列)2.设计内容产生三种不同频率的正弦信号并叠加,通过FFT变换得到频域图;并设计在200-300Hz的带通滤波器,并进行频谱分析;再对合成信号进行滤波,对滤波前后信号进行对比;3.设计原理理论上信号的采样要符合奈奎斯特采
19、样定律,就是采样频率要高一点,一般为被采信号最高频率的2倍,只有这样,才能保证频域不混叠,也就是采样出来数字信号中包含了被采信号的所有信息,而且没有引入干扰。这就是信号的时域采样。频谱分析是指对信号进行频域谱的分析,观察其频域的各个分量的功率大小,其理论基础是傅立叶变换,现在一般采用数字的方法,也就是将时域信号数字化后做FFT,可以得到频域的波形。数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。可以设计系统的频率响应,让它满足一定的要求,从而对通过该系统的信号的某些特定的频率成分进行过滤,这就是滤波器的基本原理。如果系统是一个连续系统,则滤波器称
20、为模拟滤波器。如果系统是一个离散系统,则滤波器称为数字滤波器。IIR数字滤波器的设计步骤:(1)按照一定规则把给定的滤波器技术指标转换为模拟低通滤波器的技术指标;(2)根据模拟滤波器技术指标设计为响应的模拟低通滤波器;(3)很据脉冲响应不变法和双线性不变法把模拟滤波器转换为数字滤波器;(4)如果要设计的滤波器是高通、带通或带阻滤波器,则首先把它们的技术指标转化为模拟低通滤波器的技术指标,设计为数字低通滤波器,最后通过频率转换的方法来得到所要的滤波器。FIR数字滤波器的设计步骤:(1)根据技术要求确定待求滤波器的单位抽样响应hd(n);(2)根据对过渡带和阻带衰减的要求,选择窗函数的形式,并估计
21、窗口长度N;(3)计算滤波器的单位取样响应h(n)h(n)= hd(n)w(n)式中,w(n)是前面所选择好的窗函数。(4)检验技术指标是否满足要求,如不满足,则需要重新设计。本课程设计设计思想:首先利用MATLAB分别产生低频中频高频信号,然后进行叠加得到连续时间信号;对所产生的连续时间信号进行采样,得到数字信号;对信号进行FFT频谱分析,绘制其频谱图;根据信号频谱分析的结果,设计带通滤波器,得到滤波器的幅频及相频特性。滤波器的设计有多种方法,可以设计IIR滤波器或FIR滤波器,其中IIR滤波器可以根据巴特沃斯滤波器或契比雪夫滤波器的原理来设计;FIR滤波器可以根据窗函数法、频率采样法和契比
22、雪夫逼近法等等。在本次课程设计中,我们组完成了三种带通滤波器的设计,分别为巴特沃斯带通滤波器,契比雪夫带通滤波器,利用汉明窗设计的FIR带通滤波器。4.MATLAB软件介绍MATLAB软件是由美国Mathworks公司推出的用于数值计算和图形处理的科学计算系统环境。在MATLAB环境下,用户可以集成地进行程序设计、数值计算、图形绘制、输入输出、文件管理等各项操作。MATLAB提供了一个人机交互的数学系统环境,该系统的基本数据结构是矩阵,在生成矩陈对象时,不要求作明确的维数说明。与利用C语言或FORTRAN语言作数值计算的程序设计相比,利用MATLAB可以节省大量的编程时间。MATLAB因其提供
23、计算、图形、文字处理的统一环境而深受欢迎。MTALAB系统由五个主要部分组成,下面分别加以介绍。 (1)MATALB语言是高层次的矩阵数组语言。具有条件控制、函数调用、数据结构、输入输出、面向对象等程序语言特性。利用它既可以进行小规模编程,完成算法设计和算法实验的基本任务,也可以进行大规模编程,开发复杂的应用程序。 (2)MATLAB工作环境这是对MATLAB提供给用户使用的管理功能的总称。包括管理工作空间中的变量据输入输出的方式和方法,以及开发、调试、管理M文件的各种工具。 (3)MATLAB图形系统的基础,包括完成2D和3D数据图示、图像处理、动画生成、图形显示等功能的高层MATLAB命令
24、,也包括用户对图形图像等对象进行特性控制的低层MATLAB命令,以及开发GUI应用程序的各种工具。(4)MATLAB数学函数库这是对MATLAB使用的各种数学算法的总称。包括各种初等函数的算法,也包括矩阵运算、矩阵分析等高层次数学算法。 (5)MATLAB应用程序接口(API) 这是MATLAB为用户提供的一个函数库,使得用户能够在MATLAB环境中使用C程序或Fortran程序,包括从MATLAB中调用于程序(动态链接),读写MAT文件的功能。 可以看出MATLAB是一个功能十分强大的系统,是集数值计算、图形管理、程序开发为一体的环境。设计用的部分函数即命令如下表所示:表1 常见的MATLA
25、B函数名称功能名称功能Clear从内存中清除变量和函数Close关闭图形Min取最小值Ceil取整Angle相位角Unwrap相位角展开Figure建立图形窗口Subplot在标定位置上建立坐标系Stem离散序列图Plot线性绘图XlabelX轴标记YlabelY轴标记Title图形标题Axis控制坐标系的刻度和形式5.设计过程5.1 信号的产生首先产生一个连续输入信号,包含低频(f=30Hz),中频(f=200Hz),高频(f=500Hz)分量。5.1.1 程序代码f1=30;f2=200;f3=500;t=(1:100)/2000;x1=sin(2*pi*t*f1);figure(1);s
26、ubplot(2,1,1);plot(x1); %绘制x(t)的图形xlabel(t);ylabel(x1(t);title(连续信号);grid;x2=sin(2*pi*t*f2);subplot(2,1,2);plot(x2); %绘制x2(t)的图形xlabel(t);ylabel(x2(t);title(连续信号);grid;x3=sin(2*pi*t*f3);figure(2);subplot(2,1,1);plot(x3); %绘制x3(t)的图形xlabel(t);ylabel(x3(t);title(连续信号);grid;x=sin(2*pi*t*f1)+sin(2*pi*t*
27、f2)+sin(2*pi*t*f3);subplot(2,1,2);plot(x); %绘制x(t)的图形xlabel(t);ylabel(x(t);title(连续信号);grid;5.1.2 程序运行结果结果图如图1,图2所示图1 低频,中频信号图2 高频,合成信号5.1.3 分析图1图2所示内容为按照设计要求作出的三种频率分量,即低频、中频、高频分量,和一个包含这三种分量的连续信号。xlabel 、ylabel、及title函数是用来给坐标轴注明x轴、y轴及坐标轴的标题。5.2 对连续输入信号进行采样,进行频谱分析5.2.1 程序代码n=1:100;t=n/2000X=fft(x,512
28、);w=(0:255)/256*1000;x=sin(2*pi*t*f1)+sin(2*pi*t*f2)+sin(2*pi*t*f3);figure(3);stem(x); %绘制x(n)的图形xlabel(n);ylabel(x(n);title(数字信号);grid;figure(4);plot(w,abs(X(1:256); %绘制频谱图xlabel(Hz);ylabel(频率响应幅度);title(频谱图);grid;5.2.2 程序运行结果结果图如图3,图4所示 图3 连续信号抽样结果波形图 图4 连续信号进行抽样后的频谱图5.2.3 分析由图可知图3,图4是对连续信号抽样,抽样点数
29、取为512。从图中看出抽样的模型是对图2中的连续信号波形的采样,并且满足时域采样定理。5.3 IIR带通滤波器5.3.1 程序代码fp=200 300;fs=150 350;fsa=2000;ap=2;as=30; %模拟截止角频率wp=fp/fsa*2;ws=fs/fsa*2; %衰减设置n,wn=buttord(wp,ws,ap,as); %获取滤波器的阶数以及3dB截止角频率B,A=butter(n,wn); %计算系统函数分子和分母多项式系数H,w=freqz(B,A,512); %获取滤波器的频率特性figure(5);subplot(2,1,1);plot(w*2000/(2*pi
30、),abs(H); %绘制带通频谱图xlabel(Hz);ylabel(频率响应幅度);title(带通滤波器);grid;subplot(2,1,2);plot(w/pi,angle(H);xlabel(Hz);ylabel(angel);title(相位特性);grid;5.3.2 程序运行结果如图5所示图5 单位脉冲响应,幅频响应及相频响应5.3.3 分析设定IIR带通数字滤波器指标:通带范围为:200-300Hz,阻带上限为:350HZ,阻带下限为150Hz,通带最大衰减Ap=2dB,阻带最小衰减为As=30dB,采样频率为fsa=2000Hz。在MATLAB中可以用n,wn=butt
31、ord(wp,ws,ap,as)求出给定通带截止频率wp阻带截止频率ws通带最大衰减ap阻带最小衰减as条件下,所需要的最小巴特沃斯模拟带通滤波器的阶数n和3dB截止频率wn。巴特沃斯滤波器的通带阻带的幅频响应特性都是单调下降,但是在此次设计中通带的幅频特性变化较小。5.4 对信号进行滤波5.4.1 程序代码y=filter(B,A,x); %对x信号进行滤波figure(8);subplot(2,1,1);plot(y);xlabel(t);ylabel(x(t);title(连续信号);grid;Y=fft(y,512);w=(0:255)/256*1000;subplot(2,1,2);
32、plot(w,abs(Y(1:256); %绘制频谱图xlabel(Hz);ylabel(频率响应幅度);title(频谱图);grid;5.4.2 程序运行结果结果图如图6所示 图6 滤波后信号时域和频域波形图六 结果分析设计过程中,首先产生连续输入信号,包含低频(f=30Hz),中频(f=200Hz)以及高频(f=500Hz)分量,然后对其进行采样,利用傅里叶变换进行频谱分析,并由带通滤波器的参数设计带通滤波器对信号进行滤波处理,对应带通滤波器的通带范围是(200,300),从运行结果图中可以看出,经过带通滤波器滤波后信号对应的频率为原信号中的中频分量(f=200Hz)。对比波形如下图7:
33、 a 滤波前信号波形图b 滤波后波形图图7 滤波前后信号波形对比图由上述结果显示,在误差允许的范围内实验结果与理论结果相同。出现误差的原因:在设计滤波器的参数时并不是十分的准确,在不同计算机上运行MATLAB时会有一定的偶然误差,从而导致实验误差的存在七 心得体会及总结此次带通滤波器的课程设计,我们是用三个信号(分别为高、中、低频)相结合产生一个连续的输入信号,以巴特沃斯滤波器为原型设计出带通滤波器,继而用这个带通滤波器对连续的输入信号进行滤波,产生一个带通输出。由课本上知识已知,一个理想的滤波器是物理不可实现的,肯定会有一些误差,我们应尽量减小误差,理想逼近。此次课程设计中,我们就是运用这个
34、原理进行设计,希望设计出的滤波器尽量逼近理想情况。一个理想的带通滤波器应该有平稳的通带,同时限制所有通带外频率的波通过,而实际上,并不能完全实现这种理想的状态,所以我们设计时,一遍遍地改变设计参数,继而调试运行,查看调试出的图形结果,使它能尽量的逼近理想滤波器。这段时间内,我最大的收获就是对MATLAB有了更深刻的认识,深感MATLAB强大的功能,它不仅具有高效的计算能力、灵活的图形处理能力、简单易懂的编程语言,更重要的是它对图形有超强的逼近模仿能力,应用起来非常方便。设计过程中,我们也遇到了很多问题。虽然都是学过的知识,但真正做起来并不简单。了解了巴特沃斯滤波器所有的参数特性以后,结合要求,
35、我们多次地修改拟定的参数,使得最后滤波的结果能尽量的最逼近理想结果,经过调试运行之后,得到最后的设计结果。本次课程设计,我们体会到了齐心协力的重要性。大家一起相互交流与合作,不懂的问题相互讨论,最后都不会的就汇总起来一起问老师。一些相关的问题我们也请教了老师,很感谢老师非常热情的帮助。在老师的悉心指导和严格要求下,极大地提高了设计与分析设计的能力,同时也感受到理论与实践之间的差距,使我们对数字信号处理的应用有了更加深刻的认识。参 考 文 献1 桂志国,杨民,陈友兴,郝丽华.数字信号处理原理及应用M.北京:国防工业出版社,2012,12 宋宇飞,潘子宇,魏峘.数字信号处理实验与学习指导M.北京:
36、清华大学出版社,2012.83 赵谦.通信系统中MATLAB基础与仿真应用M.西安:西安电子科技大学出版社,2010.34 王彬,于丹,汪洋.MATLAB数字信号处理M.北京:机械工业出版社,2010.55 刘卫国.MATLAB程序设计与应用(第二版)M.北京:高等教育出版社,2006附录:总程序代码%信号的产生f1=30;f2=200;f3=500;t=(1:100)/2000;x1=sin(2*pi*t*f1);figure(1);subplot(2,1,1);plot(x1); %绘制x(t)的图形xlabel(t);ylabel(x1(t);title(低频信号);grid;x2=si
37、n(2*pi*t*f2);subplot(2,1,2);plot(x2); %绘制x2(t)的图形xlabel(t);ylabel(x2(t);title(中频信号);grid;x3=sin(2*pi*t*f3);figure(2);subplot(2,1,1);plot(x3); %绘制x3(t)的图形xlabel(t);ylabel(x3(t);title(高频信号);grid;x=sin(2*pi*t*f1)+sin(2*pi*t*f2)+sin(2*pi*t*f3);subplot(2,1,2);plot(x); %绘制x(t)的图形xlabel(t);ylabel(x(t);titl
38、e(合成信号);grid;%对连续输入信号进行采样,进行频谱分析n=1:100;t=n/2000X=fft(x,512);w=(0:255)/256*1000;x=sin(2*pi*t*f1)+sin(2*pi*t*f2)+sin(2*pi*t*f3);figure(3);stem(x); %绘制x(n)的图形xlabel(n);ylabel(x(n);title(数字信号);grid;figure(4);plot(w,abs(X(1:256); %绘制频谱图xlabel(Hz);ylabel(频率响应幅度);title(频谱图);grid;%FIR带通滤波器(汉明窗)wls=0.15*pi;
39、wlp=0.2*pi; %参数设置whp=0.3*pi;whs=0.35*pi; delta_w=min(wlp-wls),(whs-whp); %求两个过渡带的较小者wc1=(wls+wlp)/2;wc2=(whp+whs)/2; %截止频率取通带阻带边界频率的均值%Hamming窗N2=ceil(6.6*pi/delta_w); %根据Hamming窗精确过渡带宽6.6/N计算窗宽hn2=fir1(N2-1,wc1,wc2/pi,hamming(N2);h2,w2=freqz(hn2,1);%绘图figure(5) %建立图形窗口subplot(3,1,1);n=0:N2-1;stem(n
40、,hn2,.); %绘制Hamming窗单位脉冲响应axis(0,N2-1,-0.4,0.4); %确定显示范围xlabel(n);ylabel(h(n);grid on;title(Hamming窗单位脉冲响应h(n);subplot(3,1,2);plot(w2*2000/(2*pi),20*log10(abs(h2); %绘制Hamming窗幅频响应axis(0,1000,-150,5);xlabel(归一化角频率);ylabel(幅度(单位:分贝));grid on;title(Hamming窗幅频响应);subplot(3,1,3);plot(w2/pi,180/pi*unwrap(angle(h2); %绘制Hamming窗相频响应xlabel(归一化角频率);ylabel(单位:度);grid on;title(Hamming窗相频相应);grid;y=filter(hn2,1,x);figure(6);subplot(2,1,1);plot(y);xlabel(t);ylabel(x(t);title(连续信号);grid;Y=fft(y,512);w=(0:255)/256*1000;subplot(2,1,2);plot(w,abs(Y(1:256); %绘制频谱图xlabel(Hz);ylabel(频率响应幅度);ti