数字信号处理课程设计报告

???

课 程 设 计 报 告

课程名称         数字信号处理         

课题名称     数字滤波器设计及滤波     

             通信工程            

                     

                     

                         

指导教师                

20##  12 25


湖南工程学院

课 程 设 计 任 务 书

课程名称    数字信号处理           

课    题  数字滤波器设计及滤波      

专业班级            

学生姓名                   

学    号              

指导老师               

审    批                          

     

任务书下达日期 20## 年12月  19 日

任务完成日期   20## 年 12月 25日

《数字信号处理》课程设计任务书

、设计目的

综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应结论,再利用 MATLAB 作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。

二、设计要求

1、 MATLAB 的使用,掌握 MATLAB 的程序设计方法。

2、 Windows 环境下语音信号采集的方法。

3、数字信号处理的基本概念、基本理论和基本方法。

4、MTLAB 设计 FIR 和 IIR 数字滤波器的方法。

5、用 MATLAB 对信号进行分析和处理

6、课程设计报告4000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。

7、上机演示。

8、有详细的文档。文档中包括设计思路、设计仿真程序、仿真结果及相应的分析与结论。

三、进度安排

第一周    星期一:  课题讲解,查阅资料

    星期二:   总体设计,详细设计

星期三:  编程,上机调试、修改程序

星期四:  上机调试、完善程序

星期五:   答辩

星期六-星期天:撰写课程设计报告

附:

课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 

正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。

正文的内容:一、课题的主要功能;二、课题的功能模块的划分;三、主要功能的实现;四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释);七、评分表。

   目录

一、课题的主要功能..................................................................................................5

1、问题描述................................................................................................................5

2、功能要求.................................................................................................................5

二、课题的功能模块划分...........................................................................................5

1、三大功能模块.........................................................................................................5

2、设计流程图..............................................................................................................6

三、主要功能的实现....................................................................................................7

1、设计原理..................................................................................................................7

2、功能模块的实现......................................................................................................7

3、功能实现流程..........................................................................................................8

四、程序调试 ............................................................................................................15

五、总结......................................................................................................................15

六、评分表..................................................................................................................17

七、附件(程序清单)..............................................................................................18

一、课题的主要功能

1、问题描述

   随着信息科学和计算机技术的迅速发展,数字信号处理的理论与应用得到了飞跃式的发展,形成了一门极其重要的学科。作为通信专业的学生,数字信号处理理论与应用的学习已经对我们提出了更高的要求。本次课程设计要求学生自己在Windows 环境下录取一段语音信号作为语音采集信号,在MATLAB软件平台下,进行时域和频域的分析,然后给原始的语音信号叠加上噪声。噪声类型分为如下几种:(1)白噪声;(2)单频噪色(正弦干扰);(3)多频噪声(多正弦干扰)。之后绘出叠加噪声后的语音信号时域和频谱图,在视觉上与原始语音信号图形对比,也可通过Windows播放软件从听觉上进行对比,分析并体会含噪语音信号频谱和时域波形的改变,进行时域和频域的分析。最后根据这些图谱,分析数据,设计不同滤波器,滤去噪音。绘出用滤波器滤除叠加噪声后的语音信号时域和频谱图,在视觉上与原始语音信号图形对比,也可通过Windows播放软件从听觉上进行对比,分析并体会滤波后语音信号频谱和时域波形的改变。

2、功能要求

   给定滤波器的规一化性能指标(参考指标,实际中依据每个同学所叠加噪声情况而定)。例如:通带截止频率wp=0.25*pi, 阻通带截止频率ws=0.3*pi; 通带最大衰减Rp=1 dB; 阻带最小衰减Rs=15 dB。采用窗函数法(凯塞窗)设计各型FIR滤波器(低通、高通、带通、带阻中的至少3种类型)来对叠加噪声前后的语音信号进行滤波处理,绘出滤波器的频域响应,绘出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,并从理论上对信号的变化进行分析(或解释)。

二、课题的功能模块划分

1、本课题可以分为三大功能模块:

(1)原始语音信号导入模块。

(2)给原始语音信号叠加噪声模块,包括:

    ①给原始语音信号叠加高斯白噪声模块;

    ②给原始语音信号叠加单频余弦噪声模块;

    ③给原始语音信号叠加多频噪声模块。

(3)根据添加的噪声情况选取用于滤波的滤波器模块,包括:

    ①低通滤波器模块;

    ②高通滤波器模块;

    ③带通滤波器模块。

2、设计流程图

 


三、主要功能的实现

1、设计原理

(1)关于窗函数简介

FIR滤波器的设计方法有窗函数法、频率取样法和最优化设计法。其中窗函数法是设计FIR滤波器最简单有效的方法,也是最常用的方法。在本设计中,所用到的滤波器的系数都是借助于窗函数法完成的。

   常用的窗函数有矩形窗、三角形窗、汉宁窗、哈明窗、布莱克曼窗、凯撒窗等。前几种窗函数都称为固定窗函数,每种窗函数的旁瓣幅度都是固定的。凯塞窗是一种参数可调的窗函数,是一种最优窗函数。本设计选择凯塞窗来实现。

在MATLAB下,这些窗函数的引用分别为:

   (1)矩形窗:w=boxcar(n),其产生一个n点的矩形窗函数。

   (2)三角形窗:w=triang(n),其产生一个n点的三角形窗函数。

   (3)哈明窗:w=hamming(n),产生一个n点的哈明窗函数。

   (4)汉宁窗:w=hanning(n),产生一个n点的汉宁窗函数。

   (5)布莱克曼窗:w=Blackman(n),产生一个n点的布莱克曼窗函数。

   (6)凯塞窗:w=Kaiser(n,beta),产生一个n点的凯泽窗数,其中beta为影响窗函数旁瓣的参数。

 (2)用窗函数设计FIR滤波器的步骤

用窗函数设计FIR滤波器的步骤如下:

   (1)根据对阻带衰减及过滤带的指标要求,选择窗函数的类型,并估计窗口长度N。原则是在保证阻带衰减满足要求的情况下,尽量选择主瓣窄的窗函数。然后根据过滤带宽度估计窗口长度N。

   (2)构造希望逼近的频率响应函数

   (3)计算

   (4)加窗得到设计结果:

2、功能模块的实现

(1)原始语音信号导入模块。

    使用“[x,Fs,bits]=wavread('d:/***');”将录制的原始语音信号导入MATLAB软件;使用“sound(x,Fs,bits);”语句播放采样后的数字语音信号;最后使用MATLAB绘出采样后的语音信号的时域波形和频谱图。

(2)给原始语音信号叠加噪声模块。

通过给原始语音信号叠加高斯白噪声模块中“x1=awgn(x,10);”语句对原始信号添加高斯白噪声,然后使用MATLAB绘出采样后的语音信号的时域波形和频谱图;通过给原始语音信号叠加单频余弦噪声模块中“Nd=length(x)-1;t=0:1/Fs:Nd/Fs;d=[0.8*cos(2*pi*5000*t)]';x2=x+d;”语句对原始信号添加单频余弦噪声,然后使用MATLAB绘出采样后的语音信号的时域波形和频谱图;通过给原始语音信号叠加多频噪声模块中“t=0:1/Fs:(size(x)-1)/Fs;   a=[0.01*sin(2*pi*2000*t)]';b=[0.01*sin(2*pi*3000*t)]';c=[0.01*sin(2*pi*3500*t)]';x3=x+a+b+c;”对原始信号添加多正弦噪声,然后使用MATLAB绘出采样后的语音信号的时域波形和频谱图。

(3)根据添加的噪声情况选取用于滤波的滤波器模块,包括:

    ①低通滤波器模块(代码见附表);

    ②高通滤波器模块(代码见附表);

③带通滤波器模块(代码见附表)。

3、功能实现流程

(1)语音信号采集

 录制一段课程设计学生的语音信号并保存为文件,要求长度不小于10秒,并对录制的信号进行采样;录制时可以使用Windows自带的录音机,或者使用其它专业的录音软件,录制时需要配备录音硬件(如麦克风),为便于比较,需要在安静、干扰小的环境下录音。

 操作步骤:将话筒插在计算机的语音输入插口上,一次打开打开开始/程序/附件/娱乐/录音机,启动录音机。在文件/属性中设置声音的属性(如图所示),按下录音按钮,接着对话筒说话“你好!我是***,这是我的数字信号处理语音信号”,说完后停止录音,屏幕左侧将显示所录声音的长度,点击放音按钮,可以实现所录音的重现。以文件名“***”保存入D盘中。文件存储器的后缀默认为. wav ,这是WINDOWS 操作系统规定的声音文件存的标准。步骤截图如下:

(2)语音信号分析

使用MATLAB绘出采样后的语音信号的时域波形和频谱图。根据频谱图求出其带宽,并说明语音信号的采样频率不能低于多少赫兹。

原始语音信号的时域波形及频谱产生代码见附件。

原始语音信号的时域波形及频谱如下图所示:

由图可知信号的时域与频域之间的关系,时域无限则频域有限。同时也了解该语音信号的谱线主要集中在0~2000Hz之间。将此图与加噪后的信号的时域及频域波形图进行对比,从而了解用何种滤波器能达到滤波作用。根据采样原理可以确定语音信号的采样频率。

(3)含噪语音信号合成

在MATLAB软件平台下,给原始的语音信号叠加上噪声,噪声类型分为如下几种:(1)白噪声;(2)单频噪色(正弦干扰);(3)多频噪声(多正弦干扰);(4)其它干扰,可设置为低频、高频、带限噪声,或Chirp干扰、冲激干扰。绘出叠加噪声后的语音信号时域和频谱图,在视觉上与原始语音信号图形对比,也可通过Windows播放软件从听觉上进行对比,分析并体会含噪语音信号频谱和时域波形的改变。

本课程设计添加的噪声类型为:白噪声;单频噪声(正弦干扰);多频噪声(多正弦干扰)。

添加高斯白噪声后语音信号的时域波形及频谱产生代码见附件。

添加高斯白噪声后语音信号的时域波形及频谱如下图所示:

上图所加噪声为:x1=awgn(x,10)。

添加单频噪声(正弦干扰)后语音信号的时域波形及频谱产生代码见附件。

添加单频噪声(正弦干扰)后语音信号的时域波形及频谱如下图所示:

上图所加噪声为:d=[0.8*cos(2*pi*5000*t)]'。

添加多频噪声(多正弦干扰)后语音信号的时域波形及频谱产生代码见附件。

添加多频噪声(多正弦干扰)后语音信号的时域波形及频谱如下图所示:

上图所加噪声为:a=[0.01*sin(2*pi*2000*t)]';  

                b=[0.01*sin(2*pi*3000*t)]';

                c=[0.01*sin(2*pi*3500*t)]';

(4)数字滤波器设计及滤波,完成以下题目中的一个

    题目(1):采用窗函数法与等波纹法分别设计各型FIR滤波器(低通、高通、带通、带阻中的至少3种类型)来对叠加噪声前后的语音信号进行滤波处理,绘出滤波器的频域响应,绘出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;在相同的性能指标下比较各方法的滤波效果,并从理论上进行分析(或解释)。

题目(2):采用双线性变换法与脉冲响应不变法,分别利用不同的原型低通滤波器(Butterworth型与切比雪夫I型)来设计各型IIR滤波器(低通、高通、带通、带阻中的至少3种类型),绘出滤波器的频域响应;并用这些数字滤波器对含噪语音信号分别进行滤波处理,比较不同方法下设计出来的数字滤波器的滤波效果,并从理论上进行分析(或解释)。

本课程设计所做的是用凯塞窗设计FIR滤波器(低通、高通、带通)。然后对三种加噪语音信号进行频谱分析选取合适的滤波器进行滤波。

首先,以添加高斯白噪声的语音信号为例展示滤波器的设计。

低通滤波器的实现代码见附件,凯塞窗h(n)波形和凯塞窗h(n)信号频谱如下图所示:

高通滤波器的实现代码见附件,凯塞窗h(n)波形和凯塞窗h(n)信号频谱如下图所示:

带通滤波器的实现代码见附件,凯塞窗h(n)波形和凯塞窗h(n)信号频谱如下图所示:

然后对三种加噪语音信号进行频谱分析选取合适的滤波器进行滤波。

①对添加高斯白噪声的语音信号选取低通滤波器,其滤除高斯白噪声后语音信号的时域波形及频谱产生代码见附件,滤除高斯白噪声后语音信号的时域波形及频谱如下图所示:

其凯塞窗h(n)波形和凯塞窗h(n)信号频谱如下图所示:

②对添加单频噪声(正弦干扰)的语音信号选取低通滤波器,其滤除单频噪声(正弦干扰)后语音信号的时域波形及频谱产生代码见附件,滤除单频噪声(正弦干扰)后语音信号的时域波形及频谱如下图所示:

其凯塞窗h(n)波形和凯塞窗h(n)信号频谱如下图所示:

③对添加多频噪声(多正弦干扰)的语音信号选取低通滤波器,其滤除多频噪声(多正弦干扰)后语音信号的时域波形及频谱产生代码见附件,滤除多频噪声(多正弦干扰)后语音信号的时域波形及频谱如下图所示:

其凯塞窗h(n)波形和凯塞窗h(n)信号频谱如下图所示:

(5)回放语音信号

    在各个滤波器模块中通过“sound(x,Fs,bits);”对滤波后的语音信号进行回放,感觉滤波前后语音信号的变化。

四、程序调试

1、在添加单频噪声信号后发现其频谱和添加高斯白噪声信号后的频谱一样。经检查是将“plot(abs(y2));”语句中的y2打成了y1,修改后程序运行正常,显示了添加单频噪声信号后发现其频谱。

2、用低通滤波器滤除单频噪声后,回放语音信号发现语音信号仍含有单频噪声经观察原始信号频谱、加噪信号频谱、滤波后的信号频谱,将三者进行比较发现是边带截止频率和阻带截止频率设置不当,将“fp=2500;fs=3000;Ap=0.25;As=40;”改成“fp=1500;fs=2000;Ap=0.25;As=40;”后,噪声滤除干净,语音信号清晰。

五、总结

    本次课程设计我设计的是用凯塞窗设计数字滤波器,对加噪语音信号信号进行滤波,消除噪声。噪声其中包括:高斯白噪声,单频噪声,多频噪声。设计的滤波器包括:高通滤波器,低通滤波器,带通滤波器。

    在设计过程中我了解了如何进行数字信号的录入,知道了语音信号录入硬件的过程就是模拟信号通过采样、编码,转化为数字信号的过程,掌握了进行数字信号录入的设置。除此之外,我把从理论课上学到的有关如何为原始信号加噪的理论知识运用到了课程设计中,进一步强化了理论基础,感受到采样定理在数字信号处理方面的广泛应用。同时,我也把课堂上学到的如何根据加噪信号频谱分析选择合适的滤波器以及如何设置所选滤波器的通带截止频率、阻带截止频率、通带内允许的最大衰减、阻带内允许的最小衰减等。其实这些方面也是我在课程设计中遇到的最大困难,因为对于同一个加噪信号可以选取不同的滤波器,对于不同的滤波器又可以选择不同的参数进行设置,这些都加大了课程设计的难度,如何选择合适的滤波器及设置合适的参数成为我必须攻克的难关。当然,这也是锻炼我自身、提高自身专业能力的一个好机会。在不断的改善滤波器,调整参数的过程中,我对理论知识有了更进一步的了解。这有助于我以后的理论学习,同时也让我意识到自己的不足。在以后的学习中我要及时的把理论知识进行强化,然后在做实验的时候及时运用到实际操作中去,在实践中找到不足,及时补充知识。别像这次,有的知识真是临时抱佛脚,虽然最后通过查阅资料、书籍得以了解并运用到课设中,但对其了解不够深入。

     同时,本次课程设计让我对matlab的学习产生了更加浓厚的兴趣。这不仅是因为看到matlab这个软件对我们通信专业学生的重要性还因为我看到了它强大的功能以及强大功能里的给人的趣味。在以后的学习和工作中我想matlab将是我们经常运用的软件,我以后要好好学习它,这样才能在以后的学习工作中较好的完成任务。

除此之外,本次课程设计让我们设计滤波器比较接近于我们日常生活中的应用。在现在这个电子时代,基本上所有的语音电子设备中都装备有滤波器。这次课程设计让我们真实地体验了滤波器的设计过程,这对以后我们参加工作有着莫大的益处。

通过本次实验我学到了许多知识,也对通信专业的理论知识有了进一步的了解。我想这正是这次课设给我们带来的最好的礼物。

六、评分表

计算机与通信学院课程设计评分表

课题名称:                                                     

 

                                      

教师签名:              

                                             日    期:                

七、附件(程序清单)

原始语音信号导入模块:

 [x,Fs,bits]=wavread('d:/***');

sound(x,Fs,bits);

N=length(x);

y=fft(x,N);

figure(1)

subplot(2,1,1)

plot(x);

xlabel('序列 n');

ylabel('幅值 ');

title('原始语音信号时域波形');

subplot(2,1,2)

plot(abs(y));

xlabel('频率 Hz');

ylabel('幅值');

title('原始语音信号频谱')

给原始语音信号叠加噪声模块,包括:

①给原始语音信号叠加高斯白噪声模块

x1=awgn(x,10);

sound(x1,Fs,bits)

y1=fft(x1,N);

figure(2)

subplot(2,1,1)

plot(x1);

xlabel('序列 n');

ylabel('幅值 ');

title('加高斯白噪声语音信号的时域波形')

subplot(2,1,2)

plot(abs(y1));

xlabel('频率 Hz');

ylabel('幅值');

title('加高斯白噪声语音信号的频谱')

②给原始语音信号叠加单频余弦噪声模块

Nd=length(x)-1;

t=0:1/Fs:Nd/Fs;

d=[0.8*cos(2*pi*5000*t)]';

x2=x+d;

sound(x2,Fs,bits);

figure(3)

subplot(2,1,1)

plot(x2);

xlabel('序列 n');

ylabel('幅值 ');

title('加单频余弦信号的语音信号时域波形')

y2=fft(x2,N);

subplot(2,1,2)

plot(abs(y2));

xlabel('频率 Hz');

ylabel('幅值');

title('加单频余弦信号的语音信号频谱')

③给原始语音信号叠加多频噪声模块

t=0:1/Fs:(size(x)-1)/Fs;            %将所加噪声信号的点数调整到与原始信号相同

a=[0.01*sin(2*pi*2000*t)]';  

b=[0.01*sin(2*pi*3000*t)]';

c=[0.01*sin(2*pi*3500*t)]'; 

x3=x+a+b+c;

sound(x3,Fs,bits);

y3=fft(x3,N);           %对加噪音后的信号取1024个点的fft变换

figure(4)

subplot(2,1,1);

plot(x3);

ylabel('幅值');

xlabel('序列 n');

title('加多个正弦干扰信号后的信号时域波形');

subplot(2,1,2);

plot(abs(y3));

ylabel('幅值');

xlabel('Hz');

title('加多个正弦干扰信号后的信号频谱');

以添加高斯白噪声的语音信号为例展示滤波器的设计

低通滤波器的代码如下所示:

fp=1500;fs=2000;Ap=0.25;As=40;

wp=2*pi*fp/Fs;ws=2*pi*fs/Fs;

Bt=ws-wp;

alph=0.5842*(As-21)^0.4+0.07886*(As-21);

M=ceil((As-8)/2.285/Bt);

wc=(wp+ws)/2/pi;

hn=fir1(M,wc,kaiser(M+1,alph));

hk=freqz(hn,1,Fs);

xn1=fftfilt(hn,x1);

yn1=fft(xn1);

figure(5);

subplot(2,1,1);

plot(xn1);

title('滤波后信号波形');

subplot(2,1,2);

plot(abs(yn1));

title('滤波后信号频谱');

figure(6);

subplot(2,1,1);

stem(hn);

title('凯撒窗h(n)波形');

subplot(2,1,2);

plot(abs(hk));

title('凯撒窗h(n)信号频谱');

sound(xn1,Fs,bits);

高通滤波器的代码如下所示:

fp=1500;fs=1200;Ap=0.25;As=40;

wp=2*pi*fp/Fs;

ws=2*pi*fs/Fs;

Bt=wp-ws;

alph=0.5842*(As-21)^0.4+0.07886*(As-21);

M0=ceil((As-8)/2.285/Bt);

M=M0+mod(M0,2);

wc=(wp+ws)/2/pi;

hn=fir1(M,wc,'high',kaiser(M+1,alph));

hk=freqz(hn,1,Fs);%hk=fft(hn);

xn2=fftfilt(hn,x1);

yn2=fft(xn2);

figure(7);

subplot(2,1,1);

plot(xn2);

title('滤波后信号波形');

subplot(2,1,2);

plot(abs(yn2));

title('滤波后信号频谱');

figure(8);

subplot(2,1,1);

stem(hn);

title('凯撒窗h(n)波形');

subplot(2,1,2);

plot(abs(hk));

title('凯撒窗h(n)信号频谱');

sound(xn2,Fs,bits);

带通滤波器的代码如下所示:

fp1=1200;

fs1=1300;

fs2=2200;

fp2=2400;

As=40;

wp1=2*pi*fp1/Fs;

wp2=2*pi*fp2/Fs; 

wc1=2*pi*fs1/Fs;

wc2=2*pi*fs2/Fs;

fc1=(fp1+fs1)/2;

fc2=(fp2+fs2)/2;

Bt=wc1-wp1;

dwc=[(wp1+wc1)/2/pi,(wp2+wc2)/2/pi];

alph=0.5842*(As-21)^0.4+0.07886*(As-21);

M=ceil((As-8)/2.285/Bt);

hn=fir1(M,dwc,kaiser((M+1),alph));

[h,w]=freqz(hn,1);

figure(9);

subplot(2,1,1);

plot(w/pi,abs(h));

title('凯塞窗h(n)信号频谱');

grid on;

subplot(2,1,2);

plot(w/pi,angle(h));

title('凯塞窗h(n)波形');

xn3=filter(hn,1,x1);

figure(10);

subplot(2,1,1);

plot(xn3);

title('滤波后的信号');

yn3=fft(xn3);

subplot(2,1,2);

plot(abs(yn3));

title('滤波后信号频谱');

sound(xn3,Fs,bits);

滤掉高斯白噪声的代码如下:

fp=1500;fs=2000;Ap=0.25;As=40;

wp=2*pi*fp/Fs;ws=2*pi*fs/Fs;

Bt=ws-wp;

alph=0.5842*(As-21)^0.4+0.07886*(As-21);

M=ceil((As-8)/2.285/Bt);

wc=(wp+ws)/2/pi;

hn=fir1(M,wc,kaiser(M+1,alph));

hk=freqz(hn,1,Fs);

xn1=fftfilt(hn,x1);

yn1=fft(xn1);

figure(5);

subplot(2,1,1);

plot(xn1);

title('滤波后信号波形');

subplot(2,1,2);

plot(abs(yn1));

title('滤波后信号频谱');

figure(6);

subplot(2,1,1);

stem(hn);

title('凯撒窗h(n)波形');

subplot(2,1,2);

plot(abs(hk));

title('凯撒窗h(n)信号频谱');

sound(xn1,Fs,bits);

滤除单频噪声的代码如下:

fp=1500;fs=2000;Ap=0.25;As=40;

wp=2*pi*fp/Fs;ws=2*pi*fs/Fs;

Bt=ws-wp;

alph=0.5842*(As-21)^0.4+0.07886*(As-21);

M=ceil((As-8)/2.285/Bt);

wc=(wp+ws)/2/pi;

hn=fir1(M,wc,kaiser(M+1,alph));

hk=freqz(hn,1,Fs);

xn1=fftfilt(hn,x2);

yn1=fft(xn1);

figure(5);

subplot(2,1,1);

plot(xn1);

title('滤波后信号波形');

subplot(2,1,2);

plot(abs(yn1));

title('滤波后信号频谱');

figure(6);

subplot(2,1,1);

stem(hn);

title('凯撒窗hn波形');

subplot(2,1,2);

plot(abs(hk));

title('凯撒窗hn信号频谱');

sound(xn1,Fs,bits);

滤除多频噪声的代码如下:

fp=1500;fs=2000;Ap=0.25;As=40;

wp=2*pi*fp/Fs;ws=2*pi*fs/Fs;

Bt=ws-wp;

alph=0.5842*(As-21)^0.4+0.07886*(As-21);

M=ceil((As-8)/2.285/Bt);

wc=(wp+ws)/2/pi;

hn=fir1(M,wc,kaiser(M+1,alph));

hk=freqz(hn,1,Fs);

xn1=fftfilt(hn,x3);

yn1=fft(xn1);

figure(5);

subplot(2,1,1);

plot(xn1);

title('滤波后信号波形');

subplot(2,1,2);

plot(abs(yn1));

title('滤波后信号频谱');

figure(6);

subplot(2,1,1);

stem(hn);

title('凯撒窗hn波形');

subplot(2,1,2);

plot(abs(hk));

title('凯撒窗hn信号频谱');

sound(xn1,Fs,bits);

相关推荐