您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页数字信号实验3

数字信号实验3

来源:化拓教育网
实验3 FIR数字滤波器的设计

一、实验目的

掌握用MATLAB设计FIR数字滤波器的方法,重点要掌握窗函数法。 二、实验原理

用 MATLAB 提供的函数,设计FIR数字滤波器 三、实验内容与要求

1. 用Kaiser窗设计一个FIR数字带阻滤波器,对模拟信号

xa(t) = cos (a t) + cos (b t) + cos (c t)

a = 2*pi *6500, b = 2*pi *7000, c = 2*pi *9000

滤波,要求滤去7000Hz 的频率成分。系统采样率为 fs = 32000 Hz 这同我们第二次实验。但采样点数应该比较大,可以用 N = 4096。

滤波器的 Rp = 0.25 dB, As = 50 dB, 过渡带宽可以用模拟频率(例如200Hz)也可以用数字频率指定。

还可以改变As(比如30dB)观察滤波效果。

这个实验一般不须在时域观察,主要应在频域作观察。用freqz(x, 1)就能观察有限长序列的DTFT,对对数显示不习惯的,可以用

[H, w] = freqz(x, 1);

得到数据,再用

freqzplot(H, w, 'linear')

以下为实验程序:

Fp1=6700;Fs1=6900;Fs2=7100;Fp2=7300;Fs=32000; wp1=2*pi*Fp1/Fs;

wp2=2*pi*Fp2/Fs; ws1=2*pi*Fs1/Fs; ws2=2*pi*Fs2/Fs; As=50; N=4096; t=0:1/Fs:1/Fs*N;

tr=min((ws1-wp1),(wp2-ws2)) N1=ceil((As-8)/2.285/tr); N1=N1+mod(N1,2);

beta=0.1102*(As-8.7);

wn=[(ws1+wp1)/2/pi,(ws2+wp2)/2/pi]; h=fir1(N1,wn,'stop',kaiser(N1+1,beta)); [H,W]=freqz(h,1,4096,Fs); delta_w=2*pi/4096; mag=abs(H(1:2049));

db=20*log10((mag+eps)/max(mag)); Rp=-(min(db(wp1/delta_w+1:wp2/delta_w))) As=-round(max(db(ws2/delta_w+1:2049))) figure(1) plot(W,abs(H))

a=2*pi*6500; b=2*pi*7000; c=2*pi*9000;

xa=cos(a*t)+cos(b*t)+cos(c*t); X=fft(xa,N); f=(0:N-1)*fs/N; figure(2) subplot(211) stem(f,abs(X)) title('滤波前') y=filter(h,1,xa); Y=fft(y,N); subplot(2,1,2) stem(f,abs(Y)) title('滤波后')

实验总结:通过运用MATLAB设计FIR数字滤波器,学会了采用Kaiser窗设计一个FIR数字带阻滤波器,对模拟信号进行滤波。还与之前的实验知识连接起来运用,实验图显示正确。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务