数字信号处理报告.docx
- 文档编号:4625222
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:17
- 大小:129.52KB
数字信号处理报告.docx
《数字信号处理报告.docx》由会员分享,可在线阅读,更多相关《数字信号处理报告.docx(17页珍藏版)》请在冰豆网上搜索。
数字信号处理报告
目录
1设计目的1
2设计内容1
3简述滤波器的基本原理1
3.1窗函数法1
3.2等波纹法2
3.3频率取样法2
4程序代码功能分析2
5FIR高通滤波器的设计3
5.1利用fir1函数及不同窗窗函数设计高通通滤波器3
5.1.1代码分析3
5.1.2结果图3
5.1.3结果分析4
5.2利用等波纹法设计高通通滤波器4
5.2.1代码分析4
5.2.2结果图5
5.2.3结果分析5
5.3利用频率取样法设计高通通滤波器5
5.3.1代码分析5
5.3.2结果图6
5.3.3结果分析6
6利用所设计高通通滤波器对正弦信号进行处理6
6.1代码分析6
6.2结果图7
6.3结果分析8
7利用优化设计的低通滤波器处理加有噪声的音频波形8
7.1代码分析8
7.2结果图9
7.3结果分析10
8设计过程中遇到的错误及解决办法10
8.1错误10
8.2解决办法10
9心得体会11
10参考文献11
11软件流程图11
1设计目的
1、加深对数字滤波器的常用指标理解。
2、学习数字滤波器的设计方法。
3.掌握滤波器的原理。
2设计内容
利用窗函数法、频率取样法及等波纹方法设计FIR高通滤波器,绘制出滤波器的特性图。
利用所设计的滤波器对多个频带叠加的正弦信号进行处理,对比滤波前后的信号时域和频域图,验证滤波器的效果。
最后对一段音乐进行采样和加噪,绘制出采样后语音信号的时域波形和频谱图,然后用滤波器对加噪后的信号进行滤波,绘制出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化。
FIR高通滤波器指标:
Ωp=0.8πrad,Ωs=0.7πrad,Ap=0.8dB,As=40dB;
3简述滤波器的基本原理
FIR滤波器设计的任务是选择有限长度的
,使传输函数
满足一定的幅度特性和线性相位要求。
FIR数字滤波器设计的核心思想是求出有限的脉冲响应来逼近给定的频率响应。
3.1窗函数法
窗函数法设计FIR滤波器的基本思想是在时域逼近理想滤波器的单位脉冲响应。
首先根据待逼近的理想滤波器的频率响应
,由IDTFT求出理想滤波器的单位脉冲响应
,再将无限长的
加窗截断得到有限长序列
。
加窗的作用是通过把理想滤波器的无限长脉冲响应
乘以窗函数
来产生一个被截断的脉冲响应,即
=
。
3.2等波纹法
在滤波器的设计中,通常情况下通带和阻带的误差要求是不一样的。
等波纹切比雪夫逼近准则就是通过对通带和阻带使用不同的加权函数,实现在不同频段(通常指的是通带和阻带)的加权误差最大值相同,从而实现其最大误差在满足性能指标的条件下达到最小值。
即确定系数g(k),0≤k≤j,使误差
最小。
其中
。
3.3频率取样法
频率采样法是从频域出发,根据频域采样定理,对给定的理想滤波器的频率响应
在M+1个取样点上加以等间隔的抽样,得到
,使其满足
。
再利用
可求得FIR频率响应
。
4程序代码功能分析
常用窗函数调用方法
w=hanning(N);w=hamming(N);w=blackman(N);[M,Wc,beta,ftype]=kaiserord(f,a,dev)
N表示窗函数长度;f表示滤波器的B个频带;a表示B个频带的幅度值,一般通带取1,阻带取0;dev表示B个频带中的波动值
fir1函数用法b=firl(M,Wc,’ftype’,window)
M表示滤波器的阶数;Wc表示滤波器的截止频率;ftype表示滤波器的类型;widow表示窗函数,默认为hamming窗
freqz函数用法[h,omega]=freqz(b1,a1,N)
此函数返回一b1,a1为分子和分母系数向量的z变换的频率响应,h为响应,omega为对应的角频率,N为omega的长度,默认值为512。
等波纹滤波器函数[M,fo,ao,w]=remezord(f,a,dev);h=remez(M,fo,ao,w)
函数remezord估计滤波器的阶数M;函数remez实现等波纹FIR滤波器设计;函数remezord调用参数和kaiserord中的调用参数相同;返回参数M表示滤波器的阶数;fo,ao,是具有2B个元素的向量,分别表示B个频带的2B边界频率及幅度值。
w是具有B个元素的向量,表示各频带的加权值;remez的返回值为M阶等波纹FIR滤波器的单位脉冲响应h[k].
5FIR高通滤波器的设计
5.1利用fir1函数及不同窗窗函数设计高通通滤波器
5.1.1代码分析
>>Wp=0.8;Ws=0.7;
m=Wp-Ws;%定义过度带宽
Wc=(Wp+Ws)/2;%截止频率
M=round(8/m);%定义窗函数的长度
N=M-1;%定义窗函数长度
b=fir1(N,Wc,'high');%使用fir1函数设计滤波器
%补上hanning(N+2)、blackman(N+2)、kaiser(N+2)得到不同窗函数设计的滤波器
%例b=fir1(N,Wc,'high',hanning(N+2));
%输入的参数分别是滤波器的阶数和截止频率
[h,f]=freqz(b,1,512);%滤波器的幅频特性图
plot(f/pi,20*log10(abs(h)))%参数分别是频率与幅值
xlabel('频率/赫兹');ylabel('增益/分贝');title('滤波器的增益响应(hamming)')
5.1.2
结果图
5.1.3结果分析
1.滤波器的阶数为80。
2.滤波器的通带截频0.8
,阻带截频0.7
,过渡带宽0.1
。
3.hamming窗时阻带衰减为53dB,hann窗时阻带衰减为43dB,blackman窗时阻带衰减为73dB,kaiser窗时阻带衰减为42dB。
对比设计要求与所设计出滤波器的参数可知,其各项参数均满足设计指标。
比较结果可知,hann窗设计出的滤波器阻带的波纹衰减较快,过渡带最窄,验证了在工程应用中,在满足阻带衰减的前提下,尽可能地选择主瓣宽度较小的窗函数,其得到的结果的最好的。
5.2利用等波纹法设计高通通滤波器
5.2.1代码分析
>>Fs1=0.7;dp=0.9999;ds=0.01;
Fp1=0.8;
f=[Fs1Fp1];
a=[01];
dev=[dsdp];
[M,fo,ao,w]=remezord(f,a,dev);
h=remez(M,fo,ao,w);
omega=linspace(0,pi,512);
mag=freqz(h,[1],omega);
hd=plot(omega/pi,20*log10(abs(mag)));
xlabel('频率/赫兹');ylabel('增益/分贝');title('滤波器的增益响应(等波纹)');
5.2.2结果图
5.2.3结果分析
1.滤波器的阶数为79。
2.滤波器的通带截频0.8
,阻带截频0.7
,过渡带宽0.1
。
3.阻带衰减为44dB。
对比设计要求与所设计出滤波器的参数可知,其各项参数均满足设计指标。
5.3利用频率取样法设计高通通滤波器
5.3.1代码分析
>>M=61;wp=0.8*pi;
m=0:
M/2;
wm=2*pi*m./(M+1);%截止频率
mtr=ceil(wp*(M+1)/(2*pi));%取整数
Ad=double([wm>=wp]);Ad(mtr)=0.31;%过渡点的位置
Hd=Ad.*exp(-j*0.5*M*wm);%构造频域采样向量Hd[k]
Hd=[Hdconj(fliplr(Hd(2:
M/2+1)))];%fliplr函数实现矩阵的左右翻转conj是求复数的共轭
h=real(ifft(Hd));%h(n)=IDFT[Hd(k)]
w=linspace(0,pi,1000);
H=freqz(h,[1],w);%求频响特性
figure
(1);
plot(w/pi,20*log10(abs(H)));%画出增益响应
xlabel('频率/赫兹');ylabel('增益/分贝');title('滤波器的增益响应(频率取样法)');
5.3.2结果图
5.3.3结果分析
1.滤波器的阶数为61。
2.滤波器的通带截频0.8
,阻带截频0.7
,过渡带宽0.1
。
3.阻带衰减为42dB。
对比设计要求与所设计出滤波器的参数可知,其各项参数均满足设计指标。
6利用所设计高通通滤波器对正弦信号进行处理
6.1代码分析
滤波器程序省略
figure
(2);
fs=2000;
t=0:
1/fs:
0.25;%定义时间范围和步长
s=sin(2*pi*200*t)+sin(2*pi*900*t)+sin(2*pi*800*t);%滤波前信号
subplot(2,1,1);
plot(t,s);%滤波前的信号图像
xlabel('时间/s');ylabel('幅度/dB');title('信号滤波前时域图');
Fs=fft(s,512);%将信号变换到频域
AFs=abs(Fs);%信号频域图的幅值
f=(0:
255)*fs/512;%频率采样
subplot(2,1,2);
plot(f,AFs(1:
256));%滤波前的信号频域图
xlabel('频率/Hz');ylabel('幅度/dB');title('信号滤波前频域图');
figure(3);
sf=filter(h,1,s);%使用filter函数对信号进行滤波
subplot(2,1,1);
plot(t,sf)%滤波后的信号图像
xlabel('时间/s');ylabel('幅度/dB');title('信号滤波后时域图');
axis([0.20.25-22]);%限定图像坐标范围
Fsf=fft(sf,512);%滤波后的信号频域图
AFsf=abs(Fsf);%信号频域图的幅值
f=(0:
255)*fs/512;%频率采样
subplot(2,1,2);
plot(f,AFsf(1:
256))%滤波后的信号频域图
xlabel('频率/Hz');ylabel('幅度/dB');title('信号滤波后频域图')
6.2结果图
6.3结果分析
输入信号是由三个不同频率的正弦信号叠加而成,信号频域图中位于滤波器通带内的频率分量保留了下来,位于滤波器阻带内的频率分量被滤除,滤波器的效果符合设计要求。
7利用优化设计的低通滤波器处理加有噪声的音频波形
7.1代码分析
f3=7500;f4=8000;%所加噪声正弦函数的频率
[Y,fs,bits]=wavread('D:
\xinjian\xianjian.wav');
%利用wavread产生音频的函数及采样频率
L=length(Y);t=0:
1/fs:
(L-1)/fs;%定义时间的范围及步长
y=0.008*sin(2*pi*f3*t)+0.008*sin(2*pi*f4*t);%所加噪声
n1=floor(L/2);f1=(0:
n1)*fs/L;Y=Y(:
1);sound(Y,fs);%输出加噪前音频
Y1=y+Y';%给音频加噪声
FY1=abs(fft(Y1,L));FY=abs(fft(Y,L));sound(Y1,fs);%输出加噪后的音频
figure
(1)
subplot(211)
plot(t(1:
1000),Y(1:
1000));gridon;%加噪前音频的时域图
xlabel('时间(t)');ylabel('幅度(Y)');
title('加噪前录音波形的时域图');
subplot(212)
plot(f1,FY(1:
n1+1));gridon;%加噪前音频的频域图
xlabel('频率(f)');ylabel('幅度(FY)');
title('加噪前录音波形的频域图');
figure
(2)
subplot(211)
plot(t(1:
1000),Y1(1:
1000));gridon;%加噪后音频的时域图
xlabel('时间(t)');ylabel('幅度(Y1)');
title('加噪声后录音波形的时域图');
subplot(212)
plot(f1,FY1(1:
n1+1));gridon;%加噪后音频的频域图
xlabel('频率(f)');ylabel('幅度(FY1)');
title('加噪声后录音波形的频域图');
rp=3;rs=40;%通带波纹及阻带波纹
f=[60007000];%截止频率
a=[10];%期望幅度
dev=[(10^(rp/20)-1)/(10^(rp/20)+1)10^(-rs/20)];
[n,fo,ao,w]=remezord(f,a,dev,fs);b=remez(n,fo,ao,w);
figure(3)
freqz(b,1,1024,fs);%滤波器的特性图
figure(4)
sf=filter(b,1,Y1);%使用filter函数对信号进行滤波
Fsf=abs(fft(sf,L));
subplot(211)
plot(t(1:
1000),sf(1:
1000));%滤波后音频的时域图
gridon;
xlabel('时间(t)');ylabel('幅度(sf)');
title('滤波后录音波形的时域图');
subplot(212)
plot(f1,Fsf(1:
n1+1));%滤波后音频的频域图
gridon;
xlabel('频率(f)');ylabel('幅度(Fsf)');
title('滤波后录音波形的频域图');
xlabel('频率(f)');ylabel('幅度(Fsf)');
sound(sf,fs)
7.2
结果图
7.3结果分析
1.从录音波形的频域图可以看到其频率分量主要在0到6000Hz之间,噪声的频率分量主要集中在7000Hz,利用通带截频为6000Hz的低通滤波器可以滤除噪声。
对比滤波前后的波形和频谱,可以看到波形得到了重现。
2.滤波器的通带截频0.6
,阻带截频0.7
,过渡带宽为0.1
。
3.阻带衰减为44dB,通带波纹为0.1710,阻带波纹为0.01。
8设计过程中遇到的错误及解决办法
8.1错误
?
?
?
Errorusing==>fir1
Thewindowlengthmustbethesameasthefilterlength.
要求在fir1函数中所选用的窗长要和滤波器长度一致。
但在书上指出,滤波器阶数必须为窗长加1。
经上网查询后,原来高通、带阻滤波器的阶数应该控制为奇数,因为如果阶数为偶数,则在π点必有一零点,这对于高通带阻来说是不允许的,故取阶数为奇数,即M+1,窗函数长度变成N+2。
8.2解决办法
b=fir1(N,0.75,'high',blackman(M));%使用fir1函数设计滤波器
将窗函数长度改成N+2,
b=fir1(N,0.75,'high',blackman(N+2));%使用fir1函数设计滤波器
9心得体会
通过本次的课程设计,让我对滤波器及其应用有了一个较为实际的认识。
同时,让我把数字信号处理这门课程重新进行了复习和学习,解决了很多的疑问,但还有一些疑问没解决的,例如我们现在设计的这个滤波器怎么用硬件去实现,跟我们之前学的模电有着什么关系。
这次课程设计是在Matlab上实现的,让我感受到了其功能的强大,懂得很多函数的用法。
由结果清楚了解不同方法设计的滤波器的优缺点、各个窗函数的优缺点。
因为我们选的这个题目有很大的发挥空间,存在一定的挑战,这对于我们来说是一种锻炼,培养了我们的自学、搜集资料能力和团队合作能力。
本次课程设计让我懂得不能总是埋头去做实验,首先是要思考,清楚实验的目的,所要实现的功能,通过什么途径去实现,遇到了问题查书籍、与同学讨论或者上网搜素,一旦发现有疑问就要马上解决,做到这样的话,效率就就自然会高了。
最后,感谢老师一学期的教导!
10参考文献
《数字信号处理》陈后金主编高等教育出版社
《详解Matlab数字信号处理》张德丰主编电子工业出版社
11软件流程图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理 报告