数字信号处理数字滤波器论文Word文档下载推荐.docx
- 文档编号:19750418
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:33
- 大小:219.92KB
数字信号处理数字滤波器论文Word文档下载推荐.docx
《数字信号处理数字滤波器论文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数字信号处理数字滤波器论文Word文档下载推荐.docx(33页珍藏版)》请在冰豆网上搜索。
Matlab原程序+仿真波形+技术指标
⑥根据有关的频谱特性,采用直接法设计FIR数字滤波器,并画出相应滤波器的幅频;
(设计3个FIR滤波器)
a.滤波器类型:
汉明窗(低通、高通、带阻)
b.总体要求:
Matlab原程序+仿真波形+技术指标+窗函数
⑦用自己设计的3种滤波器分别对被不同噪声污染的信号进行滤波;
⑧分析得到信号的频谱,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;
⑨回放语音信号。
2设计的详细原理
2.1卷积
线性卷积定理的公式是:
式中的符号“*”代表卷积运算,此式表示线性时不变系统的输出等于输入序列和该系统的单位脉冲响应的卷积。
观察此式,计算卷积的基本运算是翻转、移位、相乘和相加,这类卷积称为序列的线性卷积。
如果两个序列的长度分别为N和M,那么卷积结果的长度为N+M-1。
循环卷积定理:
有限长序列x1(n)和x2(n),长度分别为N1和N2,N=max[N1,N2]。
x1(n)和x2(n)的N点DFT分别为:
X1(k)=DFT[x1(n)]
X2(k)=DFT[x2(b)]
如果
X(k)=X1(k)·
X2(k)
则
2.2采样定理
对连续信号进行等间隔采样形成采样信号,采样信号的频谱是原连续信号的频谱以采样频率为周期进行周期性的延拓形成的,用公式(3-1)表示。
(3-1)
设连续信号xa(t)属带限信号,最高截止频率为Ωc,如果采样角频率Ωs≥2Ωc,那么让采样信号x^a(t)通过一个增益为T,截止频率为Ωs/2的理想低通滤波器,可以唯一地恢复出原连续信号xa(t)。
否则Ωs<
2Ωc会造成采样信号中的频谱混叠现象,不可能无失真地恢复原连续信号。
2.3椭圆滤波器的设计
椭圆(Elliptic)滤波器在通带和阻带内都具有等波纹幅频响应特性。
由于其极点位置与经典场论中的椭圆函数有关,所以由此取名为椭圆滤波器。
又因为在1931年考尔(Cauer)首先对这种滤波器进行了理论证明,所以其另一个通用名字为考尔(Cauer)滤波器。
椭圆滤波器的典型幅频响应特性曲线如图2.1所示。
由图2.1(a)可见,椭圆滤波器通带和阻带波纹幅度固定时,阶数越高,过渡带越窄;
由图2.1(b)可见,当椭圆滤波器阶数固定时,通带和阻带波纹幅度越小,过渡带就越宽。
所以椭圆滤波器的阶数N由通带边界频率Ωp、阻带边界频率Ωs、通带最大衰减p和阻带最小衰减s共同决定。
后面对五种滤波器的比较将证实,椭圆滤波器可以获得对理想滤波器幅频响应的最好逼近,是一种性能价格比最高的滤波器,所以应用非常广泛。
MATLAB信号处理工具箱提供椭圆滤波器设计函数ellipap、ellipord和ellip。
其调用格式如下:
(1)[z,p,k]=ellipap(N,Rp,As)
(2)[N,wpo]=ellipord(wp,ws,Rp,As)
(3)[N,wpo]=ellipord(wp,ws,Rp,As,′s′)
(4)[B,A]=ellip(N,Rp,wpo,′ftype′)
(5)[B,A]=ellip(N,Rp,wpo,′ftype′,′s′)
2.4用汉明窗设计数字滤波器
汉明窗能量更加集中在主瓣中,主瓣的能量约占99.96%,瓣峰值幅度为40dB,但其主瓣宽度为8π/N。
此次设计利用MATLAB软件完成。
fir1是用窗函数法设计线性相位FIR数字滤波器的工具箱函数,以实现线性相位FIR数字滤波器的标准窗函数法设计。
这里的所谓“标准”,是指在设计低通、高通、带通和带阻FIR滤波器时,Hd(ejω)分别表示相应的线性相位理想低通、高通、带通和带阻滤波器的频率响应函数。
因而将所设计的滤波器的频率响应称为标准频率响应。
Fir1的调用格式及功能如下:
hn=fir1(M,wc),返回6dB截止频率为wc的M阶(单位脉冲响应h(n)长度N=M+1)FIR低通(wc为标量)滤波器系数向量hn,默认选用哈明窗。
滤波器单位脉冲响应h(n)与向量hn的关系为h(n)=hn(n+1)n=0,1,2,…,M而且满足线性相位条件:
h(n)=h(N-1-n)。
其中wc为对π归一化的数字频率,0≤wc≤1。
当wc=[wcl,wcu]时,得到的是带通滤波器,其-6dB通带为wcl≤ω≤wcu。
hn=fir1(M,wc,′ftype′),可设计高通和带阻FIR滤波器。
当ftype=high时,设计高通FIR滤波器;
当ftype=stop,且wc=[wcl,wcu]时,设计带阻FIR滤波器。
3设计的过程和程序运行结果
3.1卷积
3.1.1线性卷积
首先定义两个序列:
x1=[200784250101],x2=[19890527],然后进行x2序列的翻转、平移。
最终得到x1、x2两序列线性卷积的结果。
图3.1.1(a)线性卷积
图3.1.1(b)线性卷积
图3.1(a)、(b)表示了序列x1、x2以及序列x2的翻转、移位过程,从图3.1(b)可看出线性卷积的最后结果。
3.1.2循环卷积
序列x=[20078425],y=[7556],对y序列进行翻转,然后向右平移,再把两序列进行循环卷积,如下图3.2所示。
图3.1.2循环卷积
3.2采样
对下面连续信号采样:
,A为幅度因子,a为衰减因子,
为模拟角频率。
输入采样频率fs(根据程序处理需要指定范围)后,在时域演示信号波形、采样脉冲及采样后信号;
分别对1500Hz,300Hz,200Hz的采样信号进行采样,得到不同采样频率下的时域图和频域图,如下图3.2所示。
图3.2不同频率下的信号采样
3.3椭圆模拟滤波器的设计
将采集到的语音信号进行频谱分析,画出采样后语音信号的时域波形和频谱图,然后产生噪声信号并加到语音信号中,得到被污染的语音信号,并回放语音信号。
之后进行污染信号的频谱分析,画出被污染的语音信号时域波形和频谱,再利用自己设计滤波器分别对被不同噪声污染的信号进行滤波。
图3.3.1原始信号的波形及频谱
图3.3.2椭圆模拟带通滤波器滤波
图3.3.3椭圆模拟高通滤波器滤波
图3.3.1为采集的原始信号的波形及频谱图,加入噪声后,利用椭圆滤波器对其进行滤波,以椭圆模拟高通、带通滤波器为例,分别见图3.3.2、3.3.3。
对于椭圆模拟滤波器,这里就不再一一介绍了。
3.4椭圆数字滤波器的设计
3.4.1椭圆数字低通滤波器
图3.4.1椭圆数字低通滤波器滤波
3.4.2椭圆数字高通滤波器
图3.4.2椭圆数字高通滤波器滤波
3.4.3椭圆数字带通滤波器
图3.4.3椭圆数字带通滤波器滤波
3.5利用汉明窗设计FIR滤波器
(3-2)
其频谱函数WHm(ejω)为
(3-3)
其幅度函数WHmg(ω)为
(3-4)
3.5.1汉明窗数字带通滤波器
图3.5.1汉明窗数字带通滤波器滤波
3.5.2汉明窗数字带阻滤波器
图3.5.2汉明窗数字带阻滤波器滤波
3.5.3汉明窗数字高通滤波器
图3.5.3汉明窗数字高通滤波器滤波
4心得体会
在本次课程设计过程中,我发现自己的基础知识和应用能力都非常不够。
刚接过任务书,就发现之前学的matlab知识都忘得差不多了,以至于这次在设计的额时候花费了较多时间来学习如何熟练操作matlab。
随着课程设计的进行,更加发现自己在数字信号处理课程学的远远不够,不能很好地根据仿真出来的信号频谱对滤波器的参数进行调整以达到最佳的滤波效果。
然而,经过参考《数字信号处理》及《MATLAB程序设计与应用》书籍,再通过利用参考文献与网络,在老师的指导下,终于完成了本次课程设计。
这次课程设计的任务较多,但是通过这次学习,我们树立了正确的设计思想,锻炼了自己理解问题、分析问题、解决问题的能力,加深了对课堂抽象概念的理解,同时巩固了课堂上所学的理论知识。
能够更好地理解与掌握了数字信号处理的基本概念、基本原理、基本分析方法。
熟悉了matlab的运行环境,初步掌握了matlab语言在数字信号处理中一些基本函数的调用和编写基本程序等应用;
熟悉了滤波器设计的一般原理,对滤波器有了更加深刻的认识和理解;
学会了滤波器设计的一般步骤;
加深了对滤波器设计产生误差的原因的理解和认识;
也在学习了数字信号处理课程之后能把所学的理论知识与实际的工程应用联系起来。
参考文献
[1]《数字信号处理(第二版)》,丁玉美等,西安电子科技大学出版社;
[2]《数字信号处理试验指导书》王创新、文卉编长沙理工大学印刷(内部使用)
[3]《数字信号处理及其MATLAB实现》,陈怀琛等译,电子工业出版社;
[4]《MATLAB及在电子信息课程中的应用》,陈怀琛等,电子工业出版社。
[5]《数字信号处理》A.V.奥本海姆,R.W.谢弗著,北京:
科学出版社
[6]《数字信号处理——理论、算法与实现(第二版)》胡广书编著,北京:
电子工业出版社
附录MATLAB程序代码
%线性卷积
x1=[0,0,2,0,0,7,8,4,2,5,0,1,0,7];
subplot(5,1,1);
stem(x1);
axis([01609]);
x2=[1,9,8,9,0,5,2,7];
x2=fliplr(x2);
subplot(5,1,2);
stem(x2);
x2(1,16)=0;
XL=[0,0,0,0,0,0,0,0,0,0,0,0,0,0];
sum=[0,0,0,0,0,0,0,0,0,0,0,0,0,0];
fori=0:
13
x3=circshift(x2,[-1,i]);
disp(x3);
subplot(5,1,3);
stem(x3);
axis([016016]);
forj=1:
12
XL(1,j+2)=x1(1,j+2)*x3(1,j+2);
sum(1,i+1)=sum(1,i+1)+XL(1,j);
end
disp(sum);
disp(XL);
subplot(5,1,4);
stem(XL);
axis([0160100]);
pause
(2);
end
subplot(5,1,5)
stem(sum);
axis([0160200]);
循环卷积:
x=[200784250107];
%定义两个序列,其中序列x为自己的学号
y=[7556];
N=12;
length1=length(x);
%序列x的长度
length2=length(y);
%序列y的长度
if(length1<
=N&
length2<
=N)
x=[xzeros(1,N-length1)];
%长度小于12的序列其后补零
y=[yzeros(1,N-length2)];
end
v=zeros(N,N);
%zeros(m,n)表示生成m行n列的0矩阵
u=zeros(N,1);
fork=N:
-1:
1
A(N-k+1)=y(k);
%序列y翻转后用序列A来表示
fori=1:
N
R=A(N);
fork=N-1:
A(k+1)=A(k);
%翻转后的序列A向右平移
A
(1)=R;
v(i,j)=A(j);
v
pause
(1)
figure;
subplot(2,1,1)
stem(v(i,:
));
title('
序列y的平移动态分解图-刘偲'
);
u(i,1)=x(i);
u
subplot(2,1,2)
stem(u);
序列x:
-刘偲'
w=v*u;
w
pause
(1)
stem(w);
循环卷积-刘偲'
时域采样:
Tp=128/1500;
%产生M长采样序列x(n)
%Fs=1500;
T=1/Fs;
Fs=1500;
M=Tp*Fs;
n=0:
M-1;
A=444.128;
alph=pi*50*sqrt
(2);
omega=pi*50*sqrt
(2);
xnt=A*exp(-alph*n*T).*sin(omega*n*T);
Xk=T*fft(xnt,M);
%M点FFT[xnt)]
yn='
xa(nT)'
;
X=fft(xnt);
k=0:
fk=k/Tp;
figure
(1);
subplot(2,1,1);
stem(xnt);
波形-刘偲'
subplot(2,1,2);
plot(fk,abs(X));
幅频-刘偲'
figure
(2);
subplot(3,2,1);
tstem(xnt,yn);
boxon;
(a)s=1500Hz'
subplot(3,2,2);
plot(fk,abs(Xk));
(a)T*FFT[xa(nT)],Fs=1500Hz'
xlabel('
f(Hz)'
ylabel('
幅频'
axis([0,Fs,0,1.2*max(abs(Xk))])
%Fs=300;
Fs=300;
M=ceil(Tp*Fs);
subplot(3,2,3);
(b)Fs=300Hz'
subplot(3,2,4);
(b)T*FFT[xa(nT),Fs=300Hz'
%Fs=200;
Fs=200;
subplot(3,2,5);
(c)Fs=200Hz'
subplot(3,2,6);
(c)T*FFT[xa(nT),Fs=200Hz'
axis([0,Fs,0,1.2*max(abs(Xk))]);
原始信号设计:
clf;
%原始音频抽样
Fs=10000;
bits=16;
T=1;
ts=1/Fs;
N=38;
[x,Fs,bits]=wavread('
LS.wav'
%利用Windows下的录音机,录制一段自己的语音信号,时间为1s
x=x(:
1);
m=length(x);
sound(x,Fs,bits);
y=fft(x,m);
%对录制的信号进行傅立叶变换
f=(Fs/m)*[1:
m];
t=[1:
m]/Fs;
subplot(211);
plot(t,x);
原始信号波形'
time(s)'
subplot(212);
plot(f,abs(y));
原始信号频谱'
frequency(hz)'
椭圆模拟带通滤波器:
clear;
[z1,fs,bits]=wavread('
E:
\数字信号处理\椭圆\LS.wav'
)
y1=z1(1:
8192,1);
Y1=fft(y1);
fp1=1200;
fp2=3000;
fc1=1000;
fc2=3200;
As=30;
Ap=1;
Fs=22050;
wc=[2*fc1/Fs,2*fc2/Fs];
wb=[2*fp1/Fs,2*fp2/Fs];
[n,wpo]=ellipord(wc,wb,Ap,As,'
s'
[b,a]=ellip(n,Ap,As,wpo,'
freqs(b,a);
x=filter(b,a,z1);
X=fft(x,8192);
subplot(2,2,1);
plot(abs(Y1));
axis([0,4000,0,100]);
滤波前信号频谱-刘偲'
subplot(2,2,2);
plot(abs(X));
axis([0,4000,0,2.5]);
滤波后信号频谱--刘偲'
subplot(2,2,3);
plot(z1);
滤波前信号波形-刘偲'
subplot(2,2,4);
plot(x);
滤波后信号波形-刘偲'
sound(x,fs,bits);
椭圆模拟高通滤波器:
closeall
8192);
fc=2800;
fp=3000;
As=100;
wc=2*fc/Fs;
wb=2*fp/Fs;
[n,wpo]=ellipord(wc,wb,Ap,As);
high'
freqz(b,a);
axis([0,4000,0,30]);
滤波后信号频谱-刘偲'
椭圆数字低通滤波器:
closeall;
Fs=8000;
bits=8;
%语音信号的频谱分析,画出采样后语音信号的时域波形和频谱图;
subplot(221);
(a)原始信号波形图-刘偲'
axis([0,1.5,-0.5,0.5]);
subplot(222);
(b)原始信号频谱图-刘偲'
axis([0,4000,0,300]);
%产生噪声信号并加到语音信号中,得到被污染的语音信号,并回放语音信号;
%噪声信号
noise1=0.01*sin(2*pi*3000*t);
%高频噪声
noise2=0.01*sin(2*pi*200*t);
%低频噪声
noise3=0.01*sin(2*pi*4000*t)+0.01*sin(2*pi*5000*t);
%带阻噪声
noise4=0.01*sin(2*pi*5000*t)+0.01*sin(2*pi*200*t);
%带通噪声
%椭圆数字低通滤波
fp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理 数字滤波器 论文