数字滤波器的设计与应用
第一部分 设计准备
一.课题任务
1.利用信号与系统实验箱及示波器熟悉四阶巴特沃思滤波器(或切比雪夫滤波器)的工作原理并观察记录各型滤波器的幅频特性。根据记录的四阶巴特沃思滤波器(或切比雪夫滤波器)的幅频特性,利用MATLAB软件设计出相应的滤波器。
2.拟定一个系统,要求:
(1)实现连续信号的采样。对采样信号加入噪声信号,分别对原始信号和带噪信号进行频谱分析并加以比较。
(2)针对给定信号带宽及噪声频率,设计巴特沃思数字滤波器(或切比雪夫滤波器)滤除噪声,进行频谱分析并与原始信号进行比较。
(3)由滤波后信号恢复出连续信号,进行谱分析。
3. 利用MATLAB软件的系统仿真功能(Simulink)完成系统的工作。 二.课题目的
1.加深理解连续时间信号离散化过程中的数学概念和物理概念,掌握时域抽样定理的内容。
2.观察硬件实验的连续时间信号经抽样后的波形图,了解其波形特点。 3.掌握由抽样序列重建原连续信号的基本原理和实现方法。 4.熟悉数字滤波器的设计方法。
5.通过实验平台了解模拟滤波器的频率响应特性。 6.熟悉由模拟滤波器转换为数字滤波器的原理。
7.通过设计具体的滤波器掌握滤波器设计方法、步骤。
8.了解数字滤波器的应用,循序渐进地培养学生运用所学知识分析和解决实际问题的能力。
三.主要设备和软件
1.信号与系统实验箱,一台
2. 同步信号源模块(DYT3000-57),一块 3. 信号的抽样与恢复模块(DYT3000-68),一块
4.四阶巴特沃斯滤波器模块(或四阶切比雪夫滤波器模块),一块 5. PC机,一台
6.基于PC的DSO-2090 USB数字示波器,一台 7.MATLAB6.5以上版本,一套
8.数字示波器与MATLAB接口软件模块,一套
第二部分 设计方案
一,总体方案以及步骤
本课题主要针对语音信号进行处理,步骤: 1语音信号采集(硬件) 2模拟滤波器(硬件) 3采用DSO2090进行采样 4得到数字信号送入PC机
5利用软件对语音信号进行恢复对语音信号频谱进行分析信号频谱进行分析 去除4000Hz以上的信号及噪声信号。 对处理后语音对语音信号进行模拟滤波。
Page 1 of 36
二.模拟滤波器
四阶巴特沃斯滤波器硬件参数测量以软件设计
⑴信号源单元产生的固定频率正弦波送入低通滤波器的信号输入端BLP_IN,用示波器观察BLP_OUT的输出波形,测量波形的电平值(有效值),记录此时的电平值及频率。确定原始电平有效值
⑵调节电位计OUT2 Freq,改变输入正弦波信号的频率,再次测量得出低通滤波3db截止频率进行低通滤波器原型设计
⑶同理,改测帯通与高通滤波器,测定wc的值,进行设计
三.软件语音恢复
1. 对语音信号进行恢复对语音信号频谱进行分析信号频谱进行分析
利用MATLAB软件进行处理,用wavread函数进行语音信号采集,用interp1函数进行语音信号进行恢复,并对采样语音信号做FFT变换得到频谱从而进行频谱分析。 2.加噪以及滤波
根据语音信号的频率,对语音信号进行加噪,加噪4000Hz以上频率的高频单音噪音,并根据噪音频率,设定合适参数通过filter函数进行滤波,对加噪信号以及滤波信号做FFT变换,进行频谱分析, 3.语音信号比较
对原始语音信号,加噪语音信号,滤波后信号进行sound回放,比较声音
四.系统总体框图
语音信号 语音信号硬件采集 滤波器滤波(硬件) 滤波器参数 DSO2090进行采样 滤波器设计 滤波 得到数字信号送入PC机 加4KHz以上噪音 滤波信号 FFT变换 Decimate改变采样频率 Sound回放
Page 2 of 36
第三部分 设计原理
1.信号的抽样与恢复
利用抽样脉冲把一个连续信号变为离散时间样值的过程称为抽样,抽样后的信号称为脉冲调幅(PAM)信号。在满足抽样定理条件下,抽样信号保留了原信号的全部信息,并且从抽样信号中可以无失真的恢复出原始信号。
抽样定理在通信系统、信息传输理论方面占有十分重要的地位。数字通信系统是以此定理作为理论基础。抽样过程是模拟信号数字化的第一步,抽样性能的优劣关系到通信设备整个系统的性能指标。
抽样定理指出:一个频带受限信号m(t),如果它的最高频率为fh,则可以唯一的由频率等于或大于2fh的样值序列所决定。抽样信号的时域与频域变化过程如图2-1所示:
图2-1 抽样信号的时域与频域变化过程
信号的抽样与恢复方框图如图2-2所示。
图2-2 信号的抽样与恢复方框图
信号的抽样与恢复的软件实现
信号重建是信号抽样的逆过程,即将离散信号x[k]转换为连续时间信号x[t]。这需要在抽样点之间“插入”一些细节,也就是在样点之间进行内插。即内插函数为hr(t),得到的重建信号记为xr(t),则有
xr(t)kx[k]h(tkT)
r信号xr(t)是否为x(t)的重建取决于对x(t)的抽样是否正确。如果不满足抽样定理的约束条件,出现频谱混叠,将无法从样点序列准确地重建x(t)。
信号的抽样与恢复的硬件实现
信号的抽样与恢复电路原理图如图2-3所示。图中各输入输出管脚说明:
Page 3 of 36
S_IN:原信号(待抽样信号)输入点。 SQU_IN:抽样脉冲信号输入点。 PAM_OUT:抽样信号输出点。 S_OUT:恢复后的信号输出点。
图2-3 信号的抽样与恢复电路原理图
2 滤波器设计
2.1 模拟滤波器设计原理
(1)模拟巴特沃思滤波器原理
巴特沃斯滤波器具有单调下降的幅频特性:在小于截止频率c的范围内,具有最平幅度的响应,而在c后,幅频响应迅速下降。
巴特沃思低通滤波器幅度平方函数为:
H(j)2a1
1()2Nc式中N为滤波器阶数,c为3dB截止角频率。将幅度平方函数写成s的函数:
Ha(s)Ha(s)1 s2N1()jc 该幅度平方函数有2N个等间隔分布在半径为c的圆上的极点
skce ,k0,1,...2N1 为了形成稳定的滤波器,取左半平面的N个极点构成Ha(s),即:
Ha(s)Nc12k1j()22N(ss)
kk0N1 为使设计统一,将频率归一化,得到归一化极点pke化系统函数为:
Ha(p)1N1k012k1j()22N,相应的归一
(pp)
k多项式形式为: Ha(p)1(b0b1p...pN)
四阶巴特沃斯低通、高通、带通滤波器电路原理图分别如图2-4(a)、(b)、(c)所示。
Page 4 of 36
图2-4 四阶巴特沃斯滤波器电路原理图
(2)模拟切比雪夫滤波器原理
切比雪夫滤波器的幅频特性具有等波纹特性,有两种形式,在通带内等波纹、阻带单调的是I型滤波器,在通带内单调、在阻带内等波纹的是II滤波器。以I型滤波器为例。
切比雪夫滤波器的幅度平方函数为:
1 A2()H(j)2
a212CN()p ε为小于1的正数,表示通带内幅度波动的程度。Ωp称为通带截止频率。令λ=Ω/Ωp,称为对Ωp的归一化频率。CN(x)为N阶切比雪夫多项式。幅度平方函数的极点是分布在bΩp为长半轴,aΩp为短半轴的椭圆上的点。同样取s平面左半平面的极点构成Ha(s):
Ha(s)进行归一化,得到:Ha(p)1其中pichsin[Np2N1N1(ssi)
i1N2(ppi)
i1N11(2k1)(2k1)]jchcos[] ,Arsh()
N2N2N 2.2 模拟滤波器数字化原理
将模拟滤波器转化为数字滤波器在工程上常用的有脉冲响应不变法和双线性变换法。
Page 5 of 36
脉冲响应不变法时一种时域上的转换方法,它是数字滤波器的单位取样响应在采样点上等于模拟滤波器的单位冲激响应,即:
h(n)ha(nT)
设模拟滤波器只有单阶极点,其系统函数为:
Ai
i1ssi对Ha(s)进行拉氏反变换得到ha(t),对ha(t)进行等间隔采样,得到h(n)ha(nT),对h(n)进行Z变换,得到数字滤波器系统函数:
Ha(s)H(z)sTNAi siT11ezi1N这种方法s和z的关系是:ze。该方法的优点是频率坐标变换时线性的切数字
滤波器的单位脉冲响应完全模仿模拟滤波器的单位冲激响应,时域特性逼近好;缺点是会产生频谱混叠现象,适合低通、带通滤波器的设计,不适合高通、带阻滤波器的设计。
双线性变换法为了克服频谱混叠现象,采用非线性频率压缩方法,将整个频率轴上
sT的频率范围压缩到/T之间,再用ze转换到Z平面上。
这种方法s和z的关系是:s(2/T)(1z/1z)。该方法克服了频谱混叠现象,但带来了频率坐标变换的非线性:(2/T)tan(/2),由模拟滤波器系统函数转换为数字滤波器系统函数公式为:
H(z)Ha(s)|21z1
zT1z1112.3数字高通、带通、带阻滤波器的设计
这些滤波器可以借助于模拟滤波器的频率变换设计一个所需类型的模拟滤波器, 再通过双线性变换法将其转换成所需类型的数字滤波器。
首先确定所需类型数字滤波器的技术指标;然后将数字滤波器技术指标按照公式(2/T)tan(/2)转换成所需类型滤波器的模拟域技术指标;将所需类型滤波器的模拟域技术指标转换成低通滤波器技术指标;设计归一化模拟低通滤波器;去归一化得到模拟低通滤波器的系统函数;将模拟低通滤波器转换为所需类型的模拟滤波器;最后通过双线性变换法转换成所需类型的数字滤波器。
3.使用Simulink建模和仿真的过程
启动Matlab后,在命令窗口中输入命令“simulink”,打开simulink模块库窗口(使用命令‘simulink3’可以打开老版本的simulink模块库界面)。典型的Simulink模块包括三个部分:输入模块、状态模块、输出模块。
3.1 Simulink模块库简介
➢ Continuous(连续模块)库 ➢ Discrete(离散模块)库 ➢ Math(数学模块)库 ➢ Sinks(信号输出模块)库:常用模块为Scope(示波器模块)、XYGraph(二维信号显示模块)、Display(显示模块)
➢ Sources(信号源模块)库(如图2-5所示),常见模块有:Constant(输入常数模块)、Signal Generator(信号源发生器模块)。
Signal Generator用于产生不同的信号波形,其中包括:正弦波、方波、锯齿波信号。Sources(信号源模块)还包括其它常用模块:Ramp(斜坡输入信号)、Sine Wave(正弦波输入信号)、Step(阶跃输入信号)、Clock(时间信号)、Pulse(脉冲
Page 6 of 36
信号)等。
图2-5 Sources(信号源模块)库
3.2 利用Simulink建立滤波器仿真实例 系统的传递函数为H(s)0.5012,输入激励为两个正弦波叠加,2s0.6449s0.7079查看系统输出变化情况。
仿真过程如下:
首先打开simulink模块库窗口,在simulink模块库窗口中单击菜单项“File/New/Model”,即可以建立一个新的simulink模型文件。如图2-6所示。
利用鼠标单击Simulink模块库窗口中的Continuous子库,选取传递函数模块Transfer Fcn,将它拖动到新建模型文件窗口的合适的位置。然后对模型模块进行参数设置和修改,单击右键从快捷菜单中选取“TransferFcn parameters…”修改传递函数参数,在弹出对话框中的传递函数分子系数“Numerator:”栏填入[0.5012],在传递函数分母系数“Denominator:”栏填入[1 0.6449 0.7079],其余参数使用默认值。若需要进一步了解该模块的参数设置说明,可以单击该对话框下方的“help”按钮。然后确认,就得到了需要仿真的传递函数。如图2-7所示。
采用同样的方法,在Simulink模块库中的Sources子库中选取激励信号源,本例选取正弦信号源(Sine wave),并将它拖动到建模文件窗口的合适的位置。然后在Sinks子库中选取示波器(Scope)模块作为系统输出波形显示。接下来利用鼠标将三个模块连接起来。
连接方法如下:
Page 7 of 36
模块外部的大于符号“>”分别表示信号的输入输出节点,为了连接两个模块的输入输出节点,可以将鼠标置于节点处,这时鼠标显示为“十”字形状,拖动鼠标到另一个模块的端口 ,然后释放鼠标按钮,则可以形成带箭头的连线,箭头方向表示信号的流向。
图2-6 Simulink模块库窗口和新建模型文件窗口
图2-7 修改仿真模型的参数
成后的建模系统可以存盘为模型文件,扩展名为“mdl”。如图2-8 所示。
图2-8 完成的建模方框图
接着对输入信号源进行参数设置。输入信号源(Step)的参数设置界面如图2-9所示。
最后双击示波器模型图标,打开示波器显示窗口。在快捷键设置菜单中设置为自动
Page 8 of 36
刻度。
以上工作完成后,可通过建模窗口菜单项“Simulation/Start”启动仿真,也可以单击工具栏上的小三角按钮启动仿真。仿真结果如图2-10所示。
图2-9 输入信号源(Step)的参数设置界面
图2-10 仿真结果(左图为两个频率叠加信号,右图为滤波后单一频率信号)
3.3 Signal Processing Blockset模块仿真过程
Signal Processing Blockset提供了包括变换、矩阵运算、FIR、IIR、自适应和多速率滤波、谱分析和实时数据I/O等模块。利用这个工具箱对数字滤波器进行仿真。图2-11为Signal Processing Blockset模块库。图2-12为DSP Sources模块库。图2-13为Filter Designs模块库。
Page 9 of 36
图2-11 Signal Processing Blockset模块库
图2-12 DSP Sources模块库
Page 10 of 36
图2-13 Filter Designs模块库
通过调用Simulink中的功能模块可以构成数字滤波器的仿真,在仿真过程中,可以双击各功能模块,随时改变参数,获得不同状态下的仿真结果。例如构造以基波为主的原始信号x(t)=3sin(2πt)+sin(8πt),通过Simulink环境下的Digital Filter Design (数字滤波器设计)模块中的DSP Blockset工具箱设计一个低通滤波器。该工具箱提供了几乎所有的滤波器模型,只需参改参数即可以得到需要的数字滤波器。
数字滤波器仿真图如图2-14所示。 数字滤波器的参数设定如图2-15所示,图2-16 ,2-17分别为滤波前后的波形。
图2-14 数字滤波器的仿真图
图2-15 数字滤波器的参数设定
Page 11 of 36
图2-16 滤波前的波形
图2-17 滤波后的波形
第四部分 设计内容与步骤
1.模拟滤波器设计(硬件及软件仿真)
硬件部分(设计内容、要求、指标): (a)四阶巴特沃思滤波器参数测量
四阶巴特沃思滤波器使用信号源单元和四阶巴特沃斯滤波器模块
• 熟悉四阶巴特沃斯滤波器设计、工作原理。接好电源线,将四阶巴特沃斯滤波器模块插入信号系统实验平台插槽中,打开实验箱电源开关,通电检查模块灯亮,实验箱开始正常工作。
•扫频信号产生
1) 将信号源单元的开关k2向下拨,切换至扫频输出。
2) 用示波器观察OUT1测试点波形,为一频率可调的锯齿波信号,该信号为扫频压控信号。调节电位计OUT1 Freq使锯齿波信号为50Hz,并将“波形选择”跳线的第一组引脚连接。
3) 用示波器观察OUT2正弦波扫频输出信号,电位计GAIN Adj则用于调节输出正弦波的幅度。
4) 调节电位计OUT1 Freq,改变送入锯齿波压控信号的频率,重复上述步骤,用示波器观察扫频输出信号的变化。
5) 分别连接“频率选择”跳线的四组引脚,改变扫频信号的扫频段,重复上述步骤,用示波器观察不同扫频段的扫频输出信号。
•输入输出参考点说明
OUT1 扫频压控锯齿波信号输出点 OUT2 正弦波扫频信号输出点。
Page 12 of 36
(b)扫频源法观察滤波器的特性:
1) 将信号源单元 “波形选择”跳线的第1组引脚连接,并将开关k2向下拨,切换至扫频输出,按照前述步骤得到扫频正弦波信号,并用示波器观察OUT1点锯齿波频率,将其调为50Hz,作为扫频压控信号。
2)
2). 将OUT2输出的扫频信号送入四阶巴特沃斯低通滤波器信号输入点BLP_IN,用示波器观察输出点BLP_OUT的输出信号波形。
3).将锯齿波压控信号和低通滤波器输出信号分别接示波器的X轴和Y轴,观
察李沙育图形。
Page 13 of 36
低通滤波 李沙育图形
4) 将扫频信号分别送入四阶巴特沃斯高通和带通滤波器,重复上述实验步骤,分别观
察各种滤波器的输出信号波形。
高通 带通
(c)描点法观察滤波器的幅频特性曲线:
1) 信号源单元产生的固定频率正弦波送入低通滤波器的信号输入端BLP_IN,用示波器观察BLP_OUT的输出波形,测量波形的电平值(有效值),记录此时的电平值及频率。 电平有效值:4.354v
2)调节电位计OUT2 Freq,改变输入正弦波信号的频率(保持信号幅度不变),重复步骤1。
Page 14 of 36
频率0.01khz 电平有效值:4.3 v 频率0.5khz 电平有效值:4.2 v 频率 16.666khz 电平有效值:4.0 v 频率 20khz 电平有效值:3.1 v 频率 25khz 电平有效值:1.76 v 频率 33.33khz 电平有效值:1.06 v 频率 50Khz 电平有效值:0.015 v
频率 0.01khz 0.5khz 16.666khz 20khz 25khz 33.33khz 50Khz 电平有效值
4.3 v
4.2 v
40. v
3.1 v
1.76 v
1.06 v
x=[0.01,0.5,16.66,20,25,33.33,50] y=[4.3,4.2,4.0,3.1,1.76,1.06,0.015] plot(x,y)
4.543.532.521.510.5005101520253035404550
wc=19
3)整理实验数据,以频率为X轴,以幅度(电平)为Y轴,绘出幅频特性图。 4)将频率正弦波信号分别送入四阶巴特沃斯高通和带通滤波器,重复上述实验步骤,绘出各种滤波器的幅频特性曲线。
高通
频率1.25khz 电平有效值:0.1 v
频率6.66khz 电平有效值:0.4 v 频率 25khz 电平有效值:1.79 v
频率 28.6khz 电平有效值:3.5 v 频率 40khz 电平有效值:3.9 v 频率 100khz 电平有效值:5.3 v 频率 200Khz 电平有效值:5.33 v
频率khz 1.25 6.66 25 28.6 40 100 200 电平有效
值v
0.1 0.4 1.79 3.5 3.9 5.3 5.33
x=[1.25,6.66,25,28.6,40,100,120] y=[0.1,0.4, 1.79,3.5,3.9,5.3,5.33] plot(x,y)
Page 15 of 36
0.015
v
6543210020406080100120Wc=37 带通:
频率1.25khz 电平有效值:0.97 v
频率6.66khz 电平有效值:1.9 v 频率 25khz 电平有效值:5 v
频率 28.6khz 电平有效值:5.1 v 频率 40khz 电平有效值:4.9 v 频率 50khz 电平有效值:2.1 v 频率 66khz 电平有效值:1.3 v 频率 100khz 电平有效值:0.21 v 频率 120Khz 电平有效值:0.17 v 频率
khz
1.25 6.7 25 28.6 40
50 电平有
效值v
0.97 1.9 5 5.1 4.9
2.1
x=[1.25,6.7,25,28.6,40,50,66,100,120] y=[0.97,1.9, 5,5.1,4.9,2.1,1.3,0.21,0.17] plot(x,y)
6543210020406080100120
wc=[17.5,44];
Page 16 of 36
66 100 1.3
0.21
120 0.17
研究各滤波器对方波信号或其它非正弦波信号输入的响应(实验步骤自拟)。 输入、输出点参考说明
BLP_IN、BLP_OUT:四阶巴特沃斯低通滤波器信号输入点、信号输出点。 BHP_IN、BHP_OUT:四阶巴特沃斯高通滤波器信号输入点、信号输出点。 BBP_IN、BBP_OUT:四阶巴特沃斯带通滤波器信号输入点、信号输出点。 软件部分(设计内容、要求、指标):
1)根据以上测量的指标,设计模拟巴特沃思(或切比雪夫)低通、高通、带通滤波器,画出幅频特性(模拟滤波器幅频特性 freqs)。
2)将模拟各型滤波器转换为数字滤波器,画出幅频特性(求数字滤波器幅频特性freqz, 采样频率fs=200kHz)。
M函数
频率响应函数freqz的修正,此函数可获得滤波器的幅值响应、相位响应及群延迟响应
function [db,mag,pha,w]=freqz_m(b,a);
[H,w]=freqz(b,a,1000,'whole'); %在0-2*pi之间选取N个点计算频率响应 H=(H(1:501))'; %频率响应 w=(w(1:501))'; %频率
mag=abs(H); %响应幅度 db=20*log10((mag+eps)/max(mag)); %增益 pha=angle(H); %相位 低通 wc=19;
[B,A]=butter(4,wc,'s'); [H,w]=freqs(B,A); mag=abs(H);
subplot(2,1,1);plot(w,mag); axis([0,40,0,1.1]); xlabel('f/khz');ylabel('U(V)');
title('analog filter Magnitude Response'); [b,a]=bilinear(B,A,10)
[db,mag,pha,w]=freqz_m(b,a); subplot(2,1,2);plot(w/pi,mag);
title('digital filter Magnitude Response'); axis([0,1,0,1.1])
analog filter Magnitude Response1U(V)0.500510202530f/khzdigital filter Magnitude Response15354010.5000.10.20.30.40.50.60.70.80.91 高通
Page 17 of 36
wc=37;
[B,A]=butter(4,wc,'high','s'); [H,w]=freqs(B,A); mag=abs(H);
subplot(2,1,1);plot(w,mag); axis([0,40,0,1.1]); xlabel('f/khz');ylabel('U(V)');
title('analog filter Magnitude Response'); [b,a]=bilinear(B,A,1)
[db,mag,pha,w]=freqz_m(b,a); subplot(2,1,2);plot(w/pi,mag);
title('digital filter Magnitude Response'); axis([0,1,0,1.1])
analog filter Magnitude Response1幅度(V)0.500510202530f/khzdigital filter Magnitude Response15354010.5000.10.20.30.40.50.60.70.80.91
wc=[17.5,44];
[B,A]=butter(4,wc,'s'); [H,w]=freqs(B,A); mag=abs(H);
subplot(2,1,1);plot(w,mag);axis([0,40,0,1.1]); xlabel('f/khz');ylabel('U(V)');
title('analog filter Magnitude Response'); [b,a]=bilinear(B,A,1);
[db,mag,pha,w]=freqz_m(b,a); subplot(2,1,2);plot(w/pi,mag);
title('digital filter Magnitude Response');axis([0,1,0,1.1])
analog filter Magnitude Response1
U(V)0.500510202530f/khzdigital filter Magnitude Response15354010.5000.10.20.30.40.50.60.70.80.91
Page 18 of 36
2 采样及恢复(硬件及软件仿真)
硬件部分(设计内容、要求、指标):
1)熟悉信号的抽样与恢复的工作原理。接好电源线,将信号的抽样与恢复模块和同步信号源模块插入信号系统实验平台插槽中,打开实验箱电源开关,通电检查模块灯亮,实验箱开始正常工作。
2)将同步信号源模块产生的VPP=1V、f0=1KHz的正弦波和f0=2KHz的方波分别送入待抽样信号输入点S_IN和抽样脉冲信号输入点SQU_IN,用示波器分别观察抽样信号输出点PAM_OUT和恢复后的信号输出点S_OUT的波形并将实验数据记录下来(实验中低通滤波器的截止频率fC=1KHz)。
方波与正弦波
3)改变抽样脉冲信号的频率,分别将f0=2KHz、4KHZ、8KHz、16KHz的方波送入抽样脉冲信号输入点SQU_IN,重复实验步骤2,比较在不同的抽样频率下恢复后的信号波形之间的差别并得出结论。
f0=2KHz波形 f0=8KHz波形
f0=16KHz波形 f0=32KHz波形
Page 19 of 36
4)将同步信号源模块产生的VPP=1V、f0=1KHz的三角波作为待抽样信号送S_IN,三角波:
f0=2KHz波形 f0=8KHz波形
f0=16KHz波形 f0=32KHz波形
f0=16KHz波形 f0=32KHz波形
Page 20 of 36
软件部分(设计内容、要求、指标):
对连续信号x(t)cos(0.5t)以抽样频率fs=2Hz抽样得到x(n)x(nT),编程完成下列任务:画出信号x(t),0t4及其在相应范围内的抽样序列;利用抽样内插函
1)恢复连续时间信号。画出信号x(t)和重建信号xr(t)的波形,
Tfs比较这两个信号。若信号x(t)与xr(t)存在较大差异,应如何改善?
t0=0:0.001:4;
x0=cos(1.6*pi*t0); subplot(3,1,1) plot(t0,x0)
title('cos(1.6∏t)信号')
数hr(t)Sa(t),(Tfs=4; ts=1/fs; tp=4 n=0:tp/ts;
xn=sin(n*ts*0.5*pi); subplot(3,2,3) stem(n*ts,xn); title('16点抽样信号') dt=ts/50; t1=0:dt:4; tp=4 n=0:tp/ts;
tmn=ones(length(n),1)*t1-n'*ts*ones(1,length(t1)); xr1=sinc(fs*tmn); x2=xn*xr1; subplot(3,2,4) plot(t1,x2);
axis([0,4,-1.1,1.1]); title('16点恢复信号'); fs=25; ts=1/fs; tp=4 n=0:tp/ts;
xn=sin(n*ts*0.5*pi); subplot(3,2,5) stem(n*ts,xn); title('100点抽样信号') dt=ts/50; t1=0:dt:4;
Page 21 of 36
tp=4 n=0:tp/ts;
tmn=ones(length(n),1)*t1-n'*ts*ones(1,length(t1)); xr1=sinc(fs*tmn); x2=xn*xr1; subplot(3,2,6) plot(t1,x2);
axis([0,4,-1.1,1.1]); title('100点恢复信号'); 实验结果:
cos(1.6∏t)信号10-110-110-100.511.5210-12.533.548点抽样信号8点恢复信号0123410-101234100点抽样信号100点恢复信号0123401234
3 对语音信号进行恢复及重采样
用软件对给定的数字语音信号(采样频率为16000Hz)进行恢复(可以利用interp1函数),并重新进行采样,重新采样的频率分别为8000Hz和4000Hz,对恢复的语音信号及重采样的语音信号进行回放(利用sound函数),比较语音的变化并记录处理过程中所得各种波形及频谱图。
(1)4000HZ取样
[x,fs]=wavread('guo5.wav');
fs
N=length(x);n=0:N-1;M=0:0.5:N-1; y=interp1(n,x,M);
subplot(2,2,1) plot(x)
title('guo5.wav 16000Hz 时域') subplot(2,2,2)
Page 22 of 36
plot(y)
title('guo5.wav 16000Hz 恢复后时域')
z=fft(x); z0=fft(y);
subplot(2,2,3) plot(abs(z))
title('guo5.wav 16000Hz频域') subplot(2,2,4) plot(abs(z0))
title('guo5.wav 16000Hz 恢复后频域')
hui5.wav 16000Hz 时域0.20.10-0.1-0.20500010000150000.20.10-0.1-0.201234hui5.wav 16000Hz 恢复后时域hui5.wav 16000Hz频域403020100050001000015000806040200x 10hui5.wav 16000Hz 恢复后频域012x 1034
(2)8000取样
[x,fs]=wavread('guo5.wav');
xa=decimate(x,2);subplot(2,2,1) plot(xa)
title('guo5.wav 8000Hz 时域')
N=length(xa);n=0:N-1;M=0:0.5:N-1; ya=interp1(n,xa,M);
subplot(2,2,2) plot(ya)
title('guo5.wav 8000Hz 恢复后时域')
za=fft(xa); za0=fft(ya);
subplot(2,2,3) plot(abs(za))
title('guo5.wav 8000Hz频域') subplot(2,2,4) plot(abs(za0))
Page 23 of 36
title('guo5.wav 8000Hz 恢复后频域')
guo5.wav 8000Hz 时域0.20.10-0.1-0.20.20.10-0.1-0.2guo5.wav 8000Hz 恢复后时域02000400060008000050001000015000guo5.wav 8000Hz频域2015105002000400060008000403020100guo5.wav 8000Hz 恢复后频域050001000015000
(3)4000HZ取样
[x,fs]=wavread('guo5.wav'); xb=decimate(x,4);subplot(2,2,1) plot(xb)
title('guo5.wav 4000Hz 时域')
N=length(xb);n=0:N-1;M=0:0.5:N-1; yb=interp1(n,xb,M); subplot(2,2,2) plot(yb)
title('guo5.wav 4000Hz 恢复后时域') zb=fft(xb); zb0=fft(yb); subplot(2,2,3) plot(abs(zb))
title('guo5.wav 4000Hz频域') subplot(2,2,4) plot(abs(zb0))
title('guo5.wav 4000Hz 恢复后频域')
Page 24 of 36
guo5.wav 4000Hz 时域0.20.10-0.1-0.20.20.10-0.1-0.2guo5.wav 4000Hz 恢复后时域0100020003000400002000400060008000guo5.wav 4000Hz频域10201551050010002000300040000guo5.wav 4000Hz 恢复后频域02000400060008000
4对语音(及复杂音信号)进行滤波
利用MATLAB软件对语音信号进行频谱分析;并对语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声。
设计步骤:
1)根据设计要求分析系统功能,掌握设计中所需理论阐明设计原理(采样频率、量化位数的概念,采样定理;信号的FFT分析;数字滤波器设计原理和方法,各种不同类型滤波器的性能比较)。
2)对语音信号做FFT,进行频谱分析,画出信号的时域波形图和频谱图。 3)对语音信号加入干扰噪声,对语音信号进行回放(利用sound函数),感觉加噪前后声音的变化。对其做FFT,进行频谱分析,比较加噪前后语音信号的波形及频谱,对所得结果进行分析。
4)根据带噪语音信号的特点,设计合适的数字滤波器,绘制所设计滤波器的幅频和相频特性。
5)用所设计的滤波器对带噪语音信号进行滤波。对滤波后的语音信号进行FFT频谱分析。记录处理过程中所得各种波形及频谱图。
6)对语音信号进行回放,感觉滤波前后声音的变化。比较滤波前后语音信号的波形及频谱,对所得结果和滤波器性能进行频谱分析。
N=1024;n=0:N-1; t=n*2*pi/N;
[x,fs]=wavread('fen5.wav') sound(x,fs) subplot(2,2,1) plot(x)
title('fen5.wav时域') y=fft(x,N); subplot(2,2,2)
Page 25 of 36
plot(t,abs(y))
axis([0,6.4,0,0.3]); title('hui5.wav频域') m=length(x); t0=[0:m-1]
x1=x+sin(1*pi*t0)'; sound(x1,fs) subplot(2,2,3) plot(x1)
title('fen5.wav加杂后时域') y1=fft(x1,N); subplot(2,2,4) plot(t,abs(y1))
title('hui5.wav加杂后频域')
fen5.wav时域0.20.10-0.1-0.20.1hui5.wav频域0.205000100001500000246fen5.wav加杂后时域210-1-205000100001500040030020010000hui5.wav加杂后频域2468wc=16;
[B,A]=butter(4,wc,'s'); [H,w]=freqs(B,A); mag=abs(H);
subplot(2,1,1);plot(w,mag); axis([0,40,0,1.1]); xlabel('f/khz');ylabel('U(V)');
title('analog filter Magnitude Response'); [b,a]=bilinear(B,A,10)
[db,mag,pha,w]=freqz_m(b,a); subplot(2,1,2);plot(w/pi,mag);
title('digital filter Magnitude Response'); axis([0,1,0,1.1]) z=filter(b,a,x0) sound(z,fs) figure(2)
Page 26 of 36
subplot(2,1,1) plot(z)
title('fen5.wav低频滤波后时域') z0=fft(z,N) subplot(2,1,2) plot(t,abs(z0))
title('hui5.wav低频滤波后频域')
analog filter Magnitude Response10.20.1U(V)fen5.wav低频滤波后时域0.50-0.100510202530f/khzdigital filter Magnitude Response153540-0.202000400060008000100001200014000hui5.wav低频滤波后频域110.50.5000.10.20.30.40.50.60.70.80.91001234567
4 复杂音的分析和处理系统设计
1) 产生由三个频率组成的信号,进行频谱分析,设计巴特沃思(或切比雪夫)数字各型滤波器,分别取出三个单音信号。
2) 对复杂音加入噪声信号,分别对原始信号和带噪信号进行频谱分析并加以比较。
3) 针对给定信号频率及噪声频率,设计巴特沃思(或切比雪夫)数字滤波器滤除噪声,进行频谱分析并与原始信号进行比较。
4) 由滤波后信号恢复出连续信号,进行谱分析。
5) 对前几步的信号分别进行回放,感觉滤波前后声音的变化。 figure(1) n=0.03;
t=0:0.00001:n; x1=cos(200*pi*t); subplot(4,1,1) plot(t,x1)
title('时域100Hz单音信号 ') x2=cos(1200*pi*t); subplot(4,1,2) plot(t,x2)
title('时域600Hz单音信号') x3=cos(3200*pi*t); subplot(4,1,3)
Page 27 of 36
plot(t,x3)
title('时域1600Hz单音信号') x=x1+x2+x3; subplot(4,1,4) plot(t,x)
title('时域多音信号 ') figure(2) wc=0.15;
[B,A]=butter(4,wc,'s') [H,w]=freqs(B,A); mag=abs(H);
[b,a]=bilinear(B,A,10);
[db,mag,pha,w]=freqz_m(b,a); z1=filter(b,a,x) subplot(3,1,1) plot(z1)
axis([0,3500,-1,+1])
title('多音低通频滤波后下x1时域') wc=[0.3,0.7];
[B,A]=butter(4,wc,'s'); [H,w]=freqs(B,A); mag=abs(H);
[b,a]=bilinear(B,A,10);
[db,mag,pha,w]=freqz_m(b,a); z2=filter(b,a,x) subplot(3,1,2) plot(z2)
axis([0,3500,-1,+1])
title('多音带通频滤波后下x2时域') wc=1;
[B,A]=butter(4,wc,'high','s'); [H,w]=freqs(B,A); mag=abs(H);
[b,a]=bilinear(B,A,15)
[db,mag,pha,w]=freqz_m(b,a); z3=filter(b,a,x) subplot(3,1,3) plot(z3)
axis([0,3500,-1,+1])
title('多音高通频滤波后下x3时域')
Page 28 of 36
figure(1) n=0.03; N=512;
t=0:0.00001:n; x1=cos(200*pi*t); x2=cos(1200*pi*t); x3=cos(3200*pi*t); x=x1+x2+x3; subplot(2,2,1) plot(t,x)
title('时域多音信号 ') y=fft(x,N) subplot(2,2,2) plot(abs(y))
title('FFT多音信号 ') x0=x+sin(8000*pi*t); subplot(2,2,3) plot(t,x0)
Page 29 of 36
title('时域多音加4KHz杂信号 ') y0=fft(x0,N) subplot(2,2,4) plot(abs(y0))
title('FFT多音加4kHZ杂信号 ') figure(2)
subplot(2,2,1) plot(t,x)
title('时域多音原信号 ') y=fft(x,N) subplot(2,2,2) plot(abs(y))
title('FFT多音原信号 ') wc=1.8;
[B,A]=butter(4,wc,'s'); [H,w]=freqs(B,A); mag=abs(H);
[b,a]=bilinear(B,A,10)
[db,mag,pha,w]=freqz_m(b,a); z=filter(b,a,x0) subplot(2,2,3) plot(z)
axis([0,3000,-4,+4])
title('加杂多音低通频滤波后x时域') z0=fft(z,N); subplot(2,2,4) plot(abs(z0))
title('加杂多音低通频滤波后x频域 ')
Page 30 of 36
5 Simulink仿真
根据前面的设计,进行基于Simulink的动态仿真设计。实现复杂音或者语音信号的分析和处理。给出系统的基于Simulink的动态建模和仿真的系统方框图,同时记录系统的各个输出点的波形和频谱图。
模拟滤波:
Sine Wave Function参数:2rad/s Sine Wave Function1 参数:1rad/s Sine Wave Function2 参数:10rad/s
Page 31 of 36
Dsp仿真:
杂音信号滤波应用
Sine wave 单音频谱100HZ Vp-p=6V: Sine wave1 单音频谱 600HZ Vp-p=4V:
Sine wave1 单音频谱 1800HZ Vp-p=2V: Sine wave3 杂波频谱 4000HZ Vp-p=8V
杂波信号 杂波加噪 低通滤波结果
Page 32 of 36
滤波器参数
带通滤波
Page 33 of 36
高通滤波
削燥滤波器参数
Page 34 of 36
第五部分 总结
Page 35 of 36
忽略此处..
Page 36 of 36
因篇幅问题不能全部显示,请点此查看更多更全内容