基于matlab的IIR数字滤波器课程设计报告.docx
《基于matlab的IIR数字滤波器课程设计报告.docx》由会员分享,可在线阅读,更多相关《基于matlab的IIR数字滤波器课程设计报告.docx(9页珍藏版)》请在冰豆网上搜索。
基于matlab的IIR数字滤波器课程设计报告
数字信号处理
课程设计报告
专业:
通信工程
院系:
信息工程学院
一、课题名称基于matlab的IIR滤波器设计
二、课题意义
数字滤波器是具有一定传输选择特性的数字信号处理装置,其输入、输出均为数字信号,实质上是一个由有限精度算法实现的线性时不变离散系统。
它的基本工作原理是利用离散系统特性对系统输入信号进行加工和变换,改变输入序列的频谱或信号波形,让有用频率的信号分量通过,抑制无用的信号分量输出。
数字滤波器和模拟滤波器有着相同的滤波概念,根据其频率响应特性可分为低通、高通、带通、带阻等类型,与模拟滤波器相比,数字滤波器除了具有数字信号处理的固有优点外,还有滤波精度高(与系统字长有关)、稳定性好(仅运行在0与l两个电平状态)、灵活性强等优点。
三、数字滤波器原理
在数字滤波中,我们主要讨论离散时间序列。
如图1所示。
设输入序列为
,离散或数字滤波器对单位抽样序列
的响应为
。
因
在时域离散信号和系统中所起的作用相当于单位冲激函数在时域连续信号和系统中所起的作用。
图1数字滤波器原理
数字滤波器的序列
将是这两个序列的离散卷积,即
(1)
同样,两个序列卷积的z变换等于个自z变换的乘积,即
(2)
用
代入上式,其中T为抽样周期,则得到
(3)
式中
和
分别为数字滤波器输入序列和输出序列的频谱,而
为单位抽样序列响应
的频谱。
由此可见,输入序列的频谱
经过滤波后,变为
,按照
的特点和我们处理信号的目的,选取适当的
使的滤波后的
符合我们的要求。
四、软件设计过程
1、采集声音信号
2、语音信号的采样及频谱分析
3、添加噪声
4、设计滤波器
5、语音信号滤波
6、对滤波前后信号的波形和频谱进行比较
7、GUI界面(选做)
五、各部分源程序及相应结果
1、原始信号的采集及分析
源程序:
[y1,fs]=audioread('1.wav');
sound(y1,50000);%播放语音信号
y=fft(y1);%对信号做FFT变换
f=fs*(0:
511)/1024;
figure
(1)
subplot(2,1,1);
plot(abs(y(1:
512)))%做原始语音信号的FFT频谱图
title('原始语音信号FFT频谱')
subplot(2,1,2);%做原始语音信号的时域图形
plot(y1)
title('原始语音信号波形');
xlabel('时间n');
ylabel('幅值n');
2、信号加噪及相关分析
源程序:
[y,fs]=audioread('1.wav');%读出信号,采样率和采样位数。
y=y(:
1);%取单声道作分析
yl=length(y)%求语音信号长度
yy=fft(y,yl);%傅里叶变换
t=[0:
1/8000:
4zeros(1,yl-32001)]';
m=0.07*sin(10000*pi*t);%产生噪声
n=y+m;%加入噪声
nl=length(n)%求语音信号长度
nn=fft(n,nl);%傅里叶变换
figure
(1);
subplot(2,1,1);plot(n);title('噪声信号波形')
subplot(2,1,2);plot(y);title('原信号波形')
figure
(2);
subplot(2,1,1);plot(abs(nn));title('噪声信号频谱');
subplot(2,1,2);plot(abs(yy));title('原信号频谱');
sound(n,fs)
3、滤波器的设计及相关分析
源程序:
[y,fs]=audioread('1.wav');%读出信号,采样率和采样位数。
y=y(:
1);%取单声道作分析
yl=length(y)%求语音信号长度
yy=fft(y,yl);%傅里叶变换
t=[0:
1/8000:
4zeros(1,yl-32001)]';
m=0.07*sin(10000*pi*t);%产生噪声
k=y+m;%加入噪声
kl=length(k)%求语音信号长度
K=fft(k,kl);%傅里叶变换
fb=1000;fc=1200;As=100;Ap=1;fs=50000;
wc=2*fc/fs;wb=2*fb/fs;
[n,wn]=ellipord(wc,wb,Ap,As);
[b,a]=ellip(n,Ap,As,wn);
x=filter(b,a,k);
s1=length(x);%求语音信号长度
X=fft(x,s1);
figure
(1);freqz(b,a,1000,8000);title('滤波器幅频相频图');
figure
(2);subplot(3,1,1);plot(y);title('原信号波形')
figure
(2);subplot(3,1,2);plot(k);title('噪声信号波形')
figure
(2);subplot(3,1,3);plot(x);title('滤波后信号波形')
figure(3);subplot(3,1,1);plot(abs(yy));title('原信号频谱');
figure(3);subplot(3,1,2);plot(abs(K));title('噪声信号频谱');
figure(3);subplot(3,1,3);plot(abs(X));title('滤波后信号频谱');
sound(x,fs);
六、设计心得
在这次的课程设计过程中,我发现自己的基础知识和应用能力都不是很好。
刚接过课题,按照设计步骤走的时候,在信号的采集和分析上就卡住了。
在最后的GUI界面设计刚开始时也是很困难随着实验的进行,发现自己的数字信号处理课程学得远远不够,不能根据仿真出来的信号频谱对滤波器的参数进行调整以达到最佳的滤波效果。
然而,通过这次设计,看了一遍数字信号处理课程关于数字滤波器的设计的内容,再通过利用参考文献与网络,最终完成了用Matlab进行IIR数字滤波器的课程设计。
加深了对课堂抽象概念的理解,巩固了课堂上所学的理论知识,并能很好地理解与掌握数字信号处理中的基本概念、基本原理、基本分析方法。
熟悉了MATLAB的运行环境,初步掌握了MATLAB语言在数字信号处理中一些基本库函数的调用和编写基本程序等应用;熟悉了滤波器设计的一般原理,对滤波器有了一个感性的认识;学会了数字高通滤波器设计的一般步骤;加深了对滤波器设计中产生误差的原因以及双线性变换法优缺点的理解和认识。