1
MATLAB与数字信号处理实验
1.9.5 6.5 综合实例

6.5 综合实例

最后给出一个FIR数字滤波器的设计和制作过程的完全实例,并将它应用于一个信号的显示和相应的频谱分析中。

这个实例包括如下过程:

使用SPTool来导入和命令一个信号;

使用滤波器设计工具来设计一个滤波器;

在SPTool中,将滤波器作用于一个原始信号,以产生对应的滤波信号;

使用信号滤波器来查看原始信号和滤波信号的时间域信号;

使用频谱分析器来比较信号之间的频谱差异。

1.信号的创建、导入及命名

你可以将一个已经存在的信号导入至SPTool,也可以在SPTool中直接创建并命名一个新的信号。在这个实例中,我们将通过命令行来创建一个新的信号,然后将它导入至SPTool。

(1)在命令行中,键入如下命令可以创建一个随机信号:

>>x = randn(5000, 1);

(2)然后激活SPTool,键入:

>>sptool

这时SPTool窗口被显示。

(3)在File菜单中选择Import...选项,数据导入窗口被显示,如图6-19所示。

注意此时变量x被显示在Workspace Contents列表中(如果没有变量x,单击From Workspace单选按钮可显示工作区的内容)。

img513

图6-19 数据导入窗口

(4)对信号命名,并将其导入至SPTool:

选中Import As框中的Signal选项;

将变量x引入至Data域的方式有两种,一种是在Data文本框中键入x;另一种是单击Workspace Contents列表中的变量x,然后单击Data文本框左边的箭头按钮;

在Sampling Frenquency文本框中键入数值5000;

在Names文本框中输入信号的名字noise;

单击OK按钮。

SPTool窗口将被重新激活,而且在Signals列表中信号noise[vector]将被选中。

2.滤波器设计

你可以将一个已经存在的滤波器导入至SPTool中,也可以通过Filter Designer来设计和编辑一个新的滤波器。在这个实例中,我们将创建一个缺省的滤波器,然后在滤波器设计工具中对它进行定制。

(1)在SPTool中单击New,将激活Filter Designer,并产生一个缺省的滤波器。

(2)在Filter Design的Sampling Frequency文本框中键入合适的数值,将滤波器的抽样频率改变为5000。

(3)对滤波器参数进行设定,如图6-20所示。

在Algorithm框中,单击Equiripple FIR选项;在Type框中,选择bandpass选项;

设定Passband的截止频率,其中Fp1为750,Fp2为1250;

设定Stopband的截止频率,其中Fs1为500,Fs2为1500;

单击Apply按钮即可以开始计算新的滤波器。

当新的滤波器的计算完成后,在主轴显示区域中,其幅值响应将以实线的形式被显示出来,见图6-21。

img514

图6-20 参数设置

img515

图6-21 幅值响应图

3.滤波器在信号滤波中的应用

在这部分中,我们将把滤波器应用于信号滤波中。滤波后,在SPTool中一个新的信号将被自动生成。

(1)通过单击Filter Designer窗口的Window菜单的合适选项,激活SPTool。

(2)选中Signals列表中的信号noise[vector]项,然后在Filter列表中单击合适的滤波器(filt1[design]),如图6-22所示。

(3)单击Apply按钮,将滤波器filt1应用于信号noise上,此时Apply-Filter对话框被显示。

(4)通过Output Signal文本框,将新的信号命名为blnoise。

(5)单击OK按钮。

完成上述步骤后,滤波器filt1将会作用于选中的信号noise上,滤波后的信号blnoise[vector]将出现在Signals列表中。

img516

图6-22 SPTool窗口

4.信号的查看、演奏及打印

通过使用Signal Browser,可以查看、打印信号的时间域信息。如果你的计算机配备有音频输出装置,你还可以对信号进行演奏。在这部分中,你将了解如何在Signal Browser中实现信号的显示、演奏及打印。

(1)在SPTool中的Signals列表中,通过按住Shift键,用鼠标来选中信号noise和blnoise。

(2)单击Signals面板中的View按钮,此时浏览器(Signal Browser)被激活,两个信号将同时显示在主轴区域中,显示结果如图6-23所示。初始情况下,信号noise将覆盖滤波后的信号blnoise,但是这两个信号确实是被同时显示的,在主轴显示区域的上方有它们的名字。

(3)单击Selection下拉式菜单,选中信号blnoise,此时主轴显示区域的内容会被刷新。可以发现信号blnoise被显示在信号noise的上面,信号以不同的颜色显示在主轴显示区域中。注意在Selection下拉式菜单中,线条的颜色将根据所选择的颜色而作出相应的改变。改变后的结果如图6-24所示。

注意:在Selection下拉式菜单显示的信号是当前被激活的信号。当进行演奏,或使用标尺时,所操作的对象就是这个被激活的信号。

(4)如果想听听激活信号的演奏效果,可以单击Options菜单中的Play选项。

img517

图6-23 多个信号被同时显示

img518

图6-24 线条颜色的变化

(5)如果希望聆听其他信号的演奏效果,可以通过步骤(3)来进行选择,也可以直接在主轴显示区域中点击感兴趣的信号。

(6)在打印这两个信号之前,将信号noise的线条显示颜色设定为灰色(gray),信号blnoise的线条显示颜色设定为白色(white),这样就可以通过线条控制来增加这两个信号之间的对比度。

单击SPTool窗口的FIlt菜单中的Preferences对话框,然后选中Signal Browser控制面板。在这个面板中选择禁止面板和标尺设置的打印。

如果需要打印图6-25所示的信号,那么在Signal Browser窗口的File菜单中选择Print选项。

img519

图6-25 需要打印输出的信号

5.信号频谱的比较

通过使用频谱浏览器(Spectrum Viewer),可以显示信号的功率谱。

(1)在Signal Browser窗口的Window菜单中,选择合适的选项以激活SPTool。

(2)在SPTool窗口中,单击Signal列表中的信号noise[vector] 。

(3)在Spectra面板中单击Create按钮,此时Spectrum Viewer被激活,并且在Spectra列表中产生一个与信号noise相对应的频谱对象(spect1),但是频谱并没有被计算和显示。

(4)在Spectrum Viewer窗口中单击Apply按钮,以计算并显示spect1,此时信号noise的频谱被显示在主轴显示区域中,结果如图6-26所示。

注意:在Parameter面板中显示了信号的名字、类型及抽样频率。频谱的名字显示在Selection下拉式菜单中。

img520

图6-26 信号noise的频谱spect1

(5)在Spectrum Viewer窗口中,重新选择Window菜单中的合适选项,激活SPTool。

(6)单击SPTool窗口的Signals列表中的信号blnoise。

(7)单击Spectra面板中的Create按钮,Spectrum Viewer再次被激活,并且在Spectra列表中产生一个与信号blnoise相对应的频谱对象(spect2)。注意此时频谱并没有被计算和显示。

(8)单击Spectrum Viewer中的Apply按钮,此时blnoise的频谱显示在主轴显示区域中,结果如图6-27所示。

图6-27显示信号blnoise的频谱在750~1250之间是比较平坦的。

(9)再次激活SPTool窗口。

(10)按住Shift键,用鼠标依次选中Spectra列表中的spect1和spect2。

(11)单击Spectra面板中View按钮,激活Spectrum Viewer窗口,此时spect1和spect2被同时显示,结果如图6-28所示。

(12)如果需要选择其中的一个进行测量和编辑,可以通过两种途径,一种是使用Selection下拉式菜单,另一种是单击主轴显示区域中的对应频谱图形。注意在Selection下拉式菜单中,线条的颜色将根据所选中的信号而作出相应的改变,在Selection下拉式菜单显示的信号是当前被激活的信号,当改变参数,或使用标尺时,所操作的对象就是这个被激活的信号。

(13)在打印这两个频谱之前,使用标尺控制可以增加它们的对比度,例如可以改变线条的类型,而不止是线条的颜色,拖动标尺重新标记阻带的截止频率,然后将标尺从Track改变为Vertical。

img521

图6-27 信号blnoise的频谱spect2

img522

图6-28 spect1和spect2被同时显示

在Spectrum Viewer窗口的File菜单中,选中Printer PREVIEW...选项。此时出现一个Spetrum Viewer Printer Preview窗口,如图6-29所示。在这个窗口中,可以拖动相应的图形。

如果需要打印图6-29的图形,单击Spectrum Viewer Printer Preview窗口中的Print...按钮。

img523

图6-29 需要打印输出的频谱

习题

6.1 先建立3种不同类型的数据,即信号数据、滤波器数据及功率谱数据,再利用Import to SPTool对话框,将它们分别载入SPTool工作台中。

6.2 先建立3种不同类型的数据,即信号数据、滤波器数据及功率谱数据,再利用Export对话框,将它们分别导出到MARLAB工作台中。

6.3 在FDATool工具的Filter Specifications面板中分析同一个滤波器的下列各种特性:幅值响应、相位响应、群延迟、脉冲响应、阶跃响应及零极点分布等。

6.4 使用FDATool工具设计一个最小阶次的低通FIR数字滤波器,性能指标为:通带0~1500 Hz,阻带截止频率2000 Hz,通带波动1%,阻带波动10%,采样频率为8000 Hz。