300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > [就酱的新征程]数字处理仿真与应用实验二:模拟低通 Butterworth 滤波器 IIR 滤波器(Matlab)

[就酱的新征程]数字处理仿真与应用实验二:模拟低通 Butterworth 滤波器 IIR 滤波器(Matlab)

时间:2020-05-13 09:02:50

相关推荐

[就酱的新征程]数字处理仿真与应用实验二:模拟低通 Butterworth 滤波器 IIR 滤波器(Matlab)

@数字处理仿真与应用实验二:模拟低通 Butterworth 滤波器 IIR 滤波器(Matlab)

这学期数字处理仿真与应用实验的记录

不多说,进入正题吧~

实验要求

利用模拟滤波器原型设计 IIR 滤波器,即设计一模拟低通 Butterworth 滤波器,

要求:

通带截止频率: fp =5000Hz 带内最大衰减:Rp =3dB

阻带截止频率: fs =10000Hz 带内最小衰减:Rs =60dB

实验准备

设置滤波器参数

1.打开filter Designer

2.设置滤波器参数如图

3.保存文件为d.m (这个名字是自己随便命名的哦!!!)

实验代码

d为通过matlab的filter designer 设计的巴特沃斯低通滤波器生成的.m文件里面的内容

function Hd = d%D Returns a discrete-time filter object.% MATLAB Code% Generated by MATLAB(R) 9.5 and DSP System Toolbox 9.7.% Generated on: 22-May- 19:15:31% Butterworth Lowpass filter designed using FDESIGN.LOWPASS.% All frequency values are in Hz.Fs = 48000; % Sampling FrequencyFpass = 5000; % Passband FrequencyFstop = 10000; % Stopband FrequencyApass = 3; % Passband Ripple (dB)Astop = 60;% Stopband Attenuation (dB)match = 'stopband'; % Band to match exactly% Construct an FDESIGN object and call its BUTTER method.h = fdesign.lowpass(Fpass, Fstop, Apass, Astop, Fs);Hd = design(h, 'butter', 'MatchExactly', match);% [EOF]

%---------------------%%------数字信号处理仿真第二次实验------%%---------------------%%程序功能:%----------1.利用模拟滤波器原型设计 IIR 滤波器,即设计一模拟低通 Butterworth 滤波器,%------------要求: 通带截止频率: fp =5000Hz 带内最大衰减:Rp =3dB 阻带截止频率: fs =10000Hz 带内最小衰减:Rs =60dB%参考文献:《信号处理matlab》%编程人员:就酱%编程更新时间:5月22日

clc;clear all;close all;%-----------参数设置------------%N=1000;Fs=50000;T=1/Fs;Tp=N*T;t=0:T:(N-1)*T;k=0:N-1; f=k/Tp;f_1=4000; f_2=9000; xt1=3*cos(2*pi*f_1*t+0.5); xt2=4*cos(2*pi*f_2*t+0.8); %-----------原信号------------%y=xt1+xt2;subplot(421);plot(t,y,'m');grid on;title('图一:原信号的波形');xlabel('t/s');ylabel('y(t)');fxt=fft(y,N);subplot(422);stem(f,abs(fxt)/max(abs(fxt)),'m');grid on;axis([0,max(f),0,1.5]);title('图二:原信号的频谱');xlabel('f/Hz');ylabel('幅度');%-----------通过巴特沃斯低通滤波后的信号----------%y_out=filter(d,y);% 注意哦: d为通过matlab的filter designer 设计的巴特沃斯低通滤波器生成的.m文件% 注意哦: d为通过matlab的filter designer 设计的巴特沃斯低通滤波器生成的.m文件% 注意哦: d为通过matlab的filter designer 设计的巴特沃斯低通滤波器生成的.m文件subplot(423);plot(t,y_out,'m'); grid on; title('图三:巴特沃斯低通滤波后的波形');xlabel('t/s');ylabel('y.out(t)');fout = fft(y_out);subplot(424);stem(abs(fout),'m');grid on; title('图四:巴特沃斯低通滤波后的频谱');xlabel('f/Hz');ylabel('幅度');%-----------高斯白噪声------------%y1 = wgn(100,1,0);subplot(425);plot(y1,'m');grid on;title('图五:高斯白噪声的波形');YfreqDomain = fft(y1);subplot(426);stem(abs(YfreqDomain),'m');grid on;title('图六:高斯白噪声的频谱');%-----------加噪声后通过滤波器------------%y1_out=filter(d,y1);subplot(427);plot(y1_out,'m'); grid on;title('图七:加噪声滤波后波形');xlabel('t/s');ylabel('y1.out(t)');Y1_f = fft(y1_out);subplot(428);stem(abs(Y1_f),'m');grid on;title('图八:噪声滤波后的频谱');xlabel('f/Hz');ylabel('幅度');

实验结果

实验结果分析

图一为生成的原始信号波形 ,图二为原始信号的频谱,可以看出有四个突起

图三为巴特沃斯低通滤波后的波形,可以看出毛刺明显减少

图四为巴特沃斯低通滤波后的频谱,可以看到已经滤除两个高频成分

图五为高斯白噪声的波形,图六为高斯白噪声的频谱

图七为加噪声滤波后波形,可以看出平滑不少

图八为噪声滤波后的频谱,可以看出频谱的曲线与最开始设计的滤波器的幅频响应的曲线相似。

实验总结(口水话)

这次实验是耗时最久的一个实验,原因在于要克服以下几个难点

1.设计滤波器

在于刚开始没有仔细读实验指导书,没有看到是要求用matlab自带的滤波器设计器来完成对滤波器的设计,网上找了很多巴特沃斯低通滤波器的设计,已经将程序编好了。这个时候才看到指导书说要用滤波器设计器来搞,又在网上百度了很久如何使用,可是还是不会调用在.m 文件中,最后问的同学才搞定的

吸取了教训,以后先认真看了实验指导书再动手写程序,要不然做完了又重新来一道,太恼火了!

2.加高斯白噪声

这个完全是百度来的,还是用了一点时间来消化这个函数的运用的

3.细节处理

本次实验我打算用8个图像来验证,在标题呀,栅格呀,横轴坐标的表示上就需要多加仔细,需要多多注重细节。

总的来说本次实验是上学期数字信号处理的学过的内容,可是经过一学期基本都忘光了,重新看到滤波器设计的原理的时候还是回想起来一点点,然后百度一下函数怎么使用,还是可以完成本次实验的。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。