|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
有关凯塞窗设计带阻滤波器问题请教大神。感谢!! b* _3 d6 g/ z3 O3 E+ p, x( V
* o; c h# K3 {. ^- G" X$ U
clc;6 n3 _! i- O5 w3 D- ^" j
clear;
. P: }4 X' o) l- pf1=150;f2=250;f3=350;f4=450;%定义通阻带频率
- q# t$ }8 ~! L+ qfs=2000;%采样频率0 k D L# _' l/ I# q- }# p
As=80;3 q" p5 Q! v0 x! R
ws1=2*pi*f1/fs;
/ ~, d, r. k* `) j* o( Xwp1=2*pi*f2/fs;/ Z4 }. I3 \& V, m3 }
wp2=2*pi*f3/fs;
+ h# M8 U" ?5 {4 wws2=2*pi*f4/fs;
% m1 w Z8 B& E6 k! D$ X( c! a3 ubeta=0.1102*(As-8.7);, Y/ n6 X$ a% M; ^+ ?' D
Bt=min(abs(ws1-wp1),abs(ws1-wp1));4 K1 a- F( Y7 i3 v6 j
N=ceil((As-7.95)/2.285/Bt);%定义滤波器的阶数6 K" L( g7 B* {$ f U8 p2 ^
b=fir1(N,[0.5*(f2+f1)/(fs/2),0.5*(f4+f3)/(fs/2)],'stopp',kaiser(N+1,beta)); %输入的参数分别是滤波器的阶数和截止频率
, ^; i) t8 i2 J& yfigure(1)
3 D. w. s0 Q( c1 y& {) B1 l[h,f]=freqz(b,1,512);%幅频特性图
$ ?# h. x4 A" b* O4 z. U" e- Z7 {plot(f*fs/(2*pi),20*log10(abs(h)))%输入参数为频率与幅值
; t' I5 \8 [( a7 ktitle('滤波器的增益响应');xlabel('频率/赫兹');ylabel('增益/分贝');9 u% w5 r" `# E( }5 l
figure(2)
2 T( ^$ T! d0 N( o0 M3 esubplot(211) y ]% V( x, K% z b
t=0:1/fs:0.1;%定义时间范围和步长
' ?6 T- V3 |- \f5=100;f6=200;f7=500;%输入信号频率: L6 I2 l6 p- Z& M
s=sin(2*pi*f5*t)+sin(2*pi*f6*t)+sin(2*pi*f7*t);%滤波前信号
% ^7 A" }$ L3 c, `( l) gplot(t,s);%滤波前的信号图像
* U9 s1 G0 A4 ?/ {6 s" X0 p4 jtitle('信号滤波前时域图');xlabel('时间/秒');ylabel('幅度/伏');: X( U. K) | E0 R" y* ]
subplot(212)
8 H4 y/ b9 C/ O, M4 fFs=fft(s,512);%傅里叶变换' S9 b. ]1 c7 k6 ]
AFs=abs(Fs);%信号频域图的幅值
; Q4 z) n9 Q/ g* Rf=(0:255)*fs/512;%频率采样3 Z" O: ]9 Y# |1 M
plot(f,AFs(1:256));%滤波前的信号频域图1 H' y) \* ^8 }
title('信号滤波前频域图');xlabel('频率/赫兹');ylabel('幅度');
8 I( l+ x2 ~+ H# e; ~+ }# @& wfigure(3)
h9 z1 D* Z; {- J! D$ @sf=filter(b,1,s);%对信号进行滤波
7 j; B, f( ]4 h$ S: ~/ Osubplot(211)2 e0 T, b# k: o' U
plot(t,sf)%滤波后的信号图像
9 L0 }' ?; ~' Z3 x) q; |% i5 wtitle('信号滤波后时域图');xlabel('时间/秒');ylabel('幅度/伏');0 [$ L; l( ^6 [" D4 m A
axis([0 0.1 -2 2]);%限定坐标范围
F; {, o: w% {& e; I" gsubplot(212)/ C5 z4 W5 F _0 K9 H
Fsf=fft(sf,512);%滤波后的信号频域图
: a$ ?' B9 C+ P) D: V0 }AFsf=abs(Fsf);%信号频域图的幅值3 U; |; `4 ?9 e8 l6 t9 `1 I ?
f=(0:255)*fs/512;%频率采样+ M% h) [) ]5 _
plot(f,AFsf(1:256))%滤波后的信号频域图; M& Q1 S3 p$ [; f
title('信号滤波后频域图');xlabel('频率/赫兹');ylabel('幅度');
4 b( \5 Z) x6 {2 P% t( m为什么MATLAB运行的时候b=fir1(N,[0.5*(f2+f1)/(fs/2),0.5*(f4+f3)/(fs/2)],'stopp',kaiser(N+1,beta));会报错。 |
|