数字信号处理课程设计报告课程名称:数字信号处理实验名称:设计一个信号滤波演示系统学院:信息科学与工程学院班级:电子信息工程姓名:vaga学号:指导老师:日期:2014年10月18日目录⊙课程设计目的及要求 (4)1.1 目的及要求 (4)1.2 开发工具及环境 (5)1.3 需求分析与功能说明 (6)⊙系统设计过程 (7)2.1 信号发生器 (7)2.1.1 说明 (7)2.1.2 源代码 (7)2.1.3 结果截图 (7)2.2 频谱分析 (8)2.2.1 说明 (8)2.2.2 源代码 (8)2.2.3 结果截图 (9)2.3 滤波器设计 (9)2.3.1 说明 (9)2.3.2 源代码 (10)2.3.3 结果截图 (11)2.4 数字滤波 (12)2.4.1 说明 (12)2.4.2 源代码 (12)2.4.3 结果截图 (14)⊙课程设计总结 (16)⊙参考资料 (17)4.1 课程设计指导书 (17)4.2 主要参考资料 (17)课程设计目的及要求1.1 目的及要求设计一个工作流程如图1所示的信号滤波演示系统。
1、信号发生器根据信号选择分为两类:(1)静态型:直接输入(或从文件读取)测试序列;(2)动态型:输入由多个不同频率正弦信号叠加组合而成的模拟信号公式(如式1所示)、采样频率(Hz)、采样点数,动态生成该信号的采样序列,作为测试信号。
100sin(2πf1t) +100sin(2πf2t ) +....+100sin(2πfnt )(1)2、频谱分析使用 FFT 对步骤1生成的测试信号进行频谱分析并展示其幅频特性与相频特性,指定需要滤除的频带,通过选择滤波器类型(IIR / FIR),确定对应的滤波器(低通、高通)技术指标。
3、滤波器设计根据步骤2中确定的IIR/FIR数字滤波器技术指标设计滤波器,得到相应的滤波器系数,并展示该滤波器的幅频(衰减)、相频特性。
(1)IIR DF:使用双线性变换法,可选择滤波器基型(巴特沃斯或切比雪夫型);(2)FIR DF:使用窗口法,可选择窗口类型,并比较分析基于不同窗口、不同阶数所设计数字滤波器的特点。
4、数字滤波利用步骤3得到的滤波系数,对测试信号进行数字滤波。
(1)IIR DF:要求通过差分过程迭代实现滤波(未知初值置零处理);(2)FIR DF:要求通过快速卷积实现滤波(对于长序列,可以选择使用重叠相加或重叠保留法进行卷积运算)。
5、输出信号分析展示经步骤4处理后所得滤波后信号的幅频、相频特性,分析是否满足滤波要求。
对同一滤波要求,根据输出信号信号频谱,对比分析各类滤波器的差异。
1.2 开发工具及环境MATLAB 7.0、wps文字、红精灵抓图精灵2010Windows7 系统环境1.3 需求分析与功能说明首先选择动态型输入,我选择输入一个由三个不同频率正弦信号叠加组合组成而成的模拟信号公式,100sin(2πf1t) +100sin(2πf2t ) +100sin(2πf3t),以此作为测试信号。
第二步骤中的频谱分析需要用到fft快速傅里叶变换,再根据MATLAB 语句编写用图像的方式展示出信号的幅频与相频特性。
这步完成后,指定IIR滤波器的类型为圆形滤波器,带通,FIR滤波器用凯赛尔窗来实现带通滤波,这些滤波各种参数会通过MATLAB编程中体现,并且通过图像的方式把滤波的窗口显示出来。
最后的数字滤波是最重要的部分,我基本能成功完成此步骤,将原始信号过滤成一个规则的正弦信号,以上就成功实现了该系统的功能。
系统设计过程2.1 信号发生器2.1.1 说明选择画出100sin(2πf1t) +100sin(2πf2t )+100sin(2πf3t )三个分量的图,分别令三个频率为f1=2000,f2=5000,f3=8000,axis 函数用法:axis一般用来设置axes的样式,包括坐标轴范围,可读比例等 axis([xmin xmax ymin ymax])。
在给定的时域内,输入采样序列,生成了含有三个不同频率的混合信号波形。
2.1.2 源代码t=0:1/20000:0.01;f1=2000,f2=5000,f3=8000;ft=100*sin(2*pi*f1*t)+100*sin(2*pi*f2*t)+100*sin(2*pi*f3*t);plot(t,ft);grid on;axis([0 0.01 1.1*min(ft) 1.1*max(ft)]);xlabel('t'),ylabel('ft');2.1.3 结果截图2.2 频谱分析2.2.1 说明使用 FFT 对步骤1生成的测试信号进行频谱分析并展示其幅频特性与相频特性,指定需要滤除的频带,通过选择滤波器类型(IIR / FIR),确定对应的滤波器(带通)技术指标。
频谱分析的部分:抽样点数N为512点,首先还是先画出抽样信号的连续形式;接下来画出实际抽样信号,运用stem ()函数(该函数即一个x对应一个y,刚好是实现抽样的功能,抽样点数为512.)第三步就是求其幅度频谱的步骤,首先对原信号函数ft做N(512)点的fft快速傅里叶变化得到Fw,这一步就是在计算N点离散傅里叶变化,接下来将求出的Fw取绝对值就是它的振幅谱。
第四步求相位谱则运用到angle()函数,该函数拥有求相位角的功能。
在抽样信号的幅度谱中发现了三个频率的幅度谱,需要进行滤波。
2.2.2 源程序fs=20000;N=512;T=1/fs; %采样点数Nt=0:1/fs:0.01;f1=2000,f2=5000,f3=8000;ft=100*sin(2*pi*f1*t)+100*sin(2*pi*f2*t)+100*sin(2*pi*f3*t);subplot(4,1,1);plot(t,ft);grid on;axis([0 0.01 1.1*min(ft) 1.1*max(ft)]);xlabel('t'),ylabel('ft');title('抽样信号的连续形式');subplot(4,1,2);stem(t,ft);grid on;axis([0 0.01 1.1*min(ft) 1.1*max(ft)]);xlabel('t'),ylabel('ft');title('实际抽样信号');k=0:N-1;Fw=fft(ft,N); %计算N点离散傅里叶变化subplot(4,1,3);plot(k,abs(Fw),'-*');grid on; %绘制振幅-频率图axis([0 600 0 10000]);xlabel('Frequency'),ylabel('|F(k)|');title('抽样信号幅度谱')subplot(4,1,4);plot(k,angle(Fw));grid on; %绘制相位谱axis([0 100 -4 4]);title('抽样信号相位谱')2.2.3 结果截图2.3 滤波器设计2.3.1 说明根据步骤2中确定的IIR/FIR数字滤波器技术指标设计滤波器,得到相应的滤波器系数,并展示该滤波器的幅频(衰减)、相频特性。
(1)IIR DF:使用双线性变换法,可选择滤波器:椭圆模拟带通滤波器;(2)FIR DF:使用窗口法,可选择凯萨尔窗。
以上分别为II R和FI R滤波器的设计及其幅频特性和相频特性。
2.3.2 源代码%IIR DF设计:%Step1:产生含有3个正弦分量的信号Fs=20000; t=(1:100)/Fs; %抽样频率、时间轴s1=100*sin(2*pi*t*2000);s2=100*sin(2*pi*t*5000);s3=sin(2*pi*t*8000);s=s1+s2+s3; subplot(511); %组成信号、指定图形位置plot(t,s);title(' 原始信号');xlabel('时间(s)' ); ylabel('信号波形' );%Step2:产生一个4阶IIR带通滤波器%通带为100Hz到200Hz,并得出其幅频响应[b,a]=ellip(2,0.5,20,[1000,2500]*2/Fs); %得到滤波器的系数矩阵[H,w]=freqz (b,a,512); %H为滤波器的系统函数subplot(5,1,2); plot(w*Fs/(2*pi),abs(H));title('IIR带通滤波器幅频响应' );xlabel(' 频率(Hz)' );ylabel(' 幅度' );axis([0 10000 0 1.5]);figure%FIR DF设计:As=70;ws=0.2* pi;wp=0.3* pi;tr_width=wp-ws; %过渡带宽度M=ceil((As-7.95)*2*pi/14.36./tr_width+1)+1;disp(['滤波器的长度为',num2str(M)]);beta=0.1102*(As-8.7);n=[0:1:M-1];disp(['线性相位斜率为',num2str(beta)]) delta_w=2*pi/1000;w_kai=(kaiser(M,beta)); %调用窗函数wc=(ws+wp)/2;r=(M-1)/2;n=[0:1:(M-1)];m=n-r+eps;hd=sin(wc*m)./(pi*m);%求理想脉冲响应h=hd.*w_kai';%加窗stem(n,w_kai);title('凯泽窗 ');axis([0 M-1 0 1.1]);ylabel('w(n)');2.3.3 结果截图IIR DF设计FIR DF设计2.4 数字滤波2.4.1 说明利用步骤3得到的滤波系数,对测试信号进行数字滤波。
(3)IIR DF:要求通过差分过程迭代实现滤波(未知初值置零处理);(4)FIR DF:要求通过快速卷积实现滤波(对于长序列,可以选择使用重叠相加或重叠保留法进行卷积运算)。
用双线性变换法设计无限脉冲响应数字滤波器(IIF DF)时,先把数字滤波器指标转换成模拟滤波器的指标,然后根据模拟滤波器的指标设计模拟滤波器,再经过线性变换把模拟滤波器转换成数字滤波器。
该系统要能够设计巴特沃兹型低通、带通、高通滤波器,并能够输入数字滤波器的性能指标,显示出滤波器的阶数和系数。