课程设计 matlab滤波器

发布 2022-10-01 02:21:28 阅读 6092

信号处理与系统设计报告。

一、 设计题目及要求。

给定一个混有单频噪声的w**波形文件,设计一个滤波器,要求能很好的滤除掉单频噪声,并且对原声音信号的影响最小。这里仅仅要求fir滤波器用窗函数法,iir滤波器用butterworth实现。

二、 设计原理。

1)、iir数字滤波器的实现方法。

1、 把数字滤波器的相应指标换算成模拟滤波器的指标;这里要考虑两种情况,如如果用脉冲响应不变法不需要进行预畸变,但是如果用双线性变换法就必须预畸变。原因很简单,脉冲响应不变法是从s域到z域的一一映射,是线性的;双线性变换法是先对s域进行压缩,然后在映射至z域,因此是非线性的。脉冲响应不变法不能用来设计高通,带阻等非限带滤波器;

2、 根据模拟滤波器的指标,设计相应的模拟滤波器;

3、 将模拟滤波器的系数转化为数字滤波器的系数;

4、 如果不是低通,要先化成模拟低通滤波器的形式,最后转化成我们所需要的类型的滤波器。

5、 iir可以用butterworth和chebyshev两种方法实现,butterworth滤波器在整个范围内是平滑的,chebyshev1和chebyshev2一个通带有波纹,一个阻带有波纹。

2)、fir滤波器的实现方法。

1、给定理想的频率响应h及指标a

2、求出理想的单位抽样相应h

3、根据阻带衰减及过渡带宽决定用什么类型的窗函数及滤波的阶数n,阶数n要经过几次试探才能确定。

4、求所设计的fir滤波器的单位抽样相应h(n)=h (n)*w(n)

5、计算频率响应h(e),确定是否满足设计指标,若不满足,需要重新设计。

3)df的分析方法。

、主要用到离散信号时域与频域相互转化的傅立叶变换,主要要解决的就是频谱泄露,栅栏效应,以及怎样提高分辨率等问题。

要重点区别掌握的知识:信号的实际采样点数n,信号的补零之后的总的计算用的点数n1,单纯的补零,即实际采样点数n不变,只增加补零的个数,可以减小栅栏效应,并不能提高信号的分辨率;增加信号的实际采样点n,可以提高信号频域的分辨率。

、对于课程设计中给点夹有噪声的波形信号,由于其时间很长,必须对其进行分段计算,采用滑动窗fft法。

3、不同的的窗函数对滤波的影响很大,必须认真选择。

三、设计步骤。

一)、原始信号频谱的分析。

对于长时间的信号,分析频谱是要采用分段计算的方法;这里用一个matlab自带的函数specgram。dft的长度为n,窗函数的宽度r要小于n,窗之间还有有一定的叠加l,是为了所有输入信号都能参与运算及处理。l

这里有两点要注意的,一是窗函数的长度r的选取,二是窗函数类型的选取;

1、 我们先试着观察一下声音波形的频谱,取值及程序如下:

clear;

clc;close;

s,fs]=w**read(''读取波形文件。

sound(s,fs);

nwin=256 ; 窗函数的长度。

overlap=248; %窗与窗之间的距离。

nfft=256进行计算的数据点数。

figure(1);

subplot(1,2,1)

window=boxcar(nwin); 得到矩形窗向量。

specgram(s,nfft,fs,window,overlap); 画出声音信号的频谱。

title('矩形窗')

window1=hanning(nwin);

subplot(1,2,2)

specgram(s,nfft,fs,window1,overlap);

title('hanning窗')

运行结果:又矩形窗及汉宁窗的幅频特性如下所示:

可以看出矩形窗的主瓣宽度小于汉宁窗的主瓣宽度,加窗后的频谱也是前者的表示噪声的那根红线没有后者的粗,我们可以得到结论:窗函数的主瓣宽度越窄,用其设计的滤波器的过渡带宽就越窄;但是矩形窗也有一个缺点,就是旁瓣衰减相对于主瓣的值没有汉宁窗的大。这会导致频谱中旁瓣的值会比较大,从而对我们想要的频谱分量产生影响。

2、当我们取nwin=nfft=512,overlap=496时,信号频谱图为。

可见,合适的窗函数应该是hanning窗,采样点数定为256.

二)滤波器的设计。

通过对原始信号频谱的分析,可以看出单频噪声干扰主要是在5000hz左右,信号的采样频率fs=22050hz,对应2,所以5000hz对应0.45。设计滤波的时候,要考虑滤除这个频率的分量。

可以用低通,如果用低通的话,阻带衰减频率不能大于0.45;也可以用带阻滤波器,如果用带阻的话,0.45应该在两个阻带截止频率之间。

可以设想一下:理论上带阻要比低通好,因为低通在滤除噪声的同时,也把有用信号的整个高频分量给滤掉了,而带阻滤波器主要是滤除噪声,对有用信号的影响较小。下面开始滤波器的设计。

1)、iir滤波器的设计。

1、iir低通滤波器的设计。

这里用的是双线性变换法,考虑预畸变。阻带衰减初步设为50db,通带衰减设为2db,通带截止频率设为0.4*pi,阻带截止频率设为0.45*pi,观察一下设计的滤波器的性能。

clear;

clc;close;

s,fs]=w**read(''读取声音文件。

sound(s,fs);

nwin=256 ;

overlap=248;

nfft=256;

window=boxcar(nwin);

figure(1);

specgram(s,nfft,fs,window,overlap);

rp=2;rs=50;

wp=input(‘请输入通带截止频率’);

ws=input(‘请输入阻带截止频率’);

t=1/fs;

omegap=2/t*tan(wp/2); 由于双线性变换法在高频的非线性,这里要进行预畸变

omegas=2/t*tan(ws/2); 变换成模拟低通滤波器的截止频率。

n,wn]=buttord(omegap,omegas,rp,rs,'s');wn是3db的归一化频率。

disp('这个滤波器的阶数是');n

z,p,k]=buttap(n);

bs,as]=zp2tf(z,p,k); 零极点模型转化成传输函数模型。

b,a]=lp2lp(bs,as,wn); 把模拟低通滤波器转化成截止频率为wn的模拟低通滤波器。

bz,az]=bilinear(b,a,1/t);

figure(2)

freqz(bz,az,512,fs幅频特性。

y=filter(bz,az,s进行滤波。

figure(3)

specgram(y,nfft,fs,window,overlap);

sound(y,fs)

运行结果:滤波器性能分析:

通过对滤波前后频谱的分析及滤波前后声音文件的试听,可以看出滤波器的性能基本上达到了指标的要求,即干扰噪声的频谱分量远小于我们需要的频谱分量。但是还是有噪声,这一点可以从频谱上看出来。为了得到更好的滤波效果,我们可以把通带及阻带截止频率调的小一点。

衰减指标不变,通带截止频率设为0.3*pi,阻带截止频率设为0.4*pi,观察一下设计的滤波器的性能。

分析:滤波后的频谱图上已经看不到噪声分量,声音听起来也没有噪声。但是由于滤掉了高频分量,所以看起来低频分量要比滤波前更多一点。

滤波器的阶数n也比之前的高了3阶。不过总起来说,滤波效果要比以前好了。

2、iir带阻滤波器的设计。

由原信号的频谱分析,可以看出噪声分量主要在5000hz左右,设计带阻时要把它滤掉。设带阻滤波器的wc1=4500hz,wc2=5500hz,滤波器的阶数为2,观察一下滤波器的性能。

clear;

clc;close;

s,fs]=w**read(''

sound(s,fs);

nwin=256 ;

overlap=248;

nfft=256;

window=hamming(nwin);

figure(1);

specgram(s,nfft,fs,window,overlap);

wc=[4500/(fs/2),5500/(fs/2阻带截止频率。

b,a]=butter(2,wc,'stop获取传输函数的系数。

figure(2)

freqz(b,a,512,fs);

y=filter(b,a,s进行滤波。

figure(3)

specgram(y,nfft,fs,window,overlap);

sound(y,fs)

运行结果:分析:可以看到,噪声分量没有了,但是滤波器的阻带设计的太大了,许多有用分量也被滤掉了,声音听起来有部分失真。

解决办法:应该适当地减小阻带宽度。

设wc1=4950hz,wc2=5050hz,其余的不变,观察滤波器的滤波效果。

分析:改变阻带截止频率后,滤波效果明显好于改变之前。从频谱图上已经看不到噪声分量了,它与低通滤波器相比更好的是它很好的保留了高频的分量。滤波后的声音听起来也基本上没有失真。

二)、fir滤波器的设计。

1、fir低通滤波器的设计。

这里用窗函数法设计fir滤波器,由于hanning窗有较好的特性,旁瓣衰减比较大,所以这里选用hanning窗。

滤波器的通带截止频率设为0.4,阻带截止频率设为0.45,观察滤波器的性能。

clear;

clc;close;

s,fs]=w**read(''

sound(s,fs);

nwin=256 ;

overlap=248;

nfft=256;

window=hamming(nwin);

figure(1)

subplot(1,2,1)

specgram(s,nfft,fs,window,overlap);

title('滤波前的频谱');

fs=fs;

nft=512;

wp=0.3*pi;

ws=0.4*pi;

delta_w=ws-wp;%过渡带宽。

n=ceil(6.2*pi/delta_w);%n是滤波器的最小阶数。

wc=(wp+ws)/2;%截止频率是通带边界与阻带边界的中点。

alpha=(n-1)/2;%群延迟。

信号和滤波器答案

一 信号简介。一 问答题答案。1.信息 为某种事件的物理表述方式。如语言 文字 图像 编码等都是一种信息 消息 要传递的方式。信号 是信息的表现开式,信息是信号的具体内容。信号是随时间变化的某种物理量。电信号 通常是指随时间而变化的电压或电流,也可以是电容上的电荷,线图中的磁通,空间的电磁波等的变化...

Matlab课程设计数据滤波程序

matlab综合。课程设计报告。设计题目 专业物联网工程。班级 142 学生王明莲。指导教师刘庆。2016 年春季学期。一 总体设计。1 程序的总体设计。二 功能实现。1.流程图 三 测试及调试 测试方案 存在的问题及解决方法 2.详细描述程序编写的步骤及编写过程 现的问题 3.详细描述程序测试方案...

有源电力滤波器测试 v1 0

附件四 一 有源电力滤波装置测试方案及测试记录。1绝缘电阻测试。1.1 测试前的准备。滤波装置输入输出开关处于断开状态,机壳及其它接地部分应可靠接地,选用的兆欧表电压等级应符合表1规定。1 测绝缘电阻用兆欧表对照表。测试人 复核人 1.2测试方法。用兆欧表测量直接测量滤波装置回路与壳体的接地部件之间...