|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
有关凯塞窗设计带阻滤波器问题请教大神。感谢!
$ t I; }. {2 u! J! ]& `) b- j# z% t2 m
clc;
) Y. O& o, n- P yclear;3 q8 \+ x, d4 r, \1 l1 C
f1=150;f2=250;f3=350;f4=450;%定义通阻带频率
0 L0 r' y: ], `7 dfs=2000;%采样频率
* {7 K. e* E# b& {; a7 o! ^$ r0 f" YAs=80;
9 X9 [! p7 b5 R% Cws1=2*pi*f1/fs;
* ]( p8 ~: ~: @2 J/ @7 swp1=2*pi*f2/fs;% ?2 v0 ^( Y8 F) W* {
wp2=2*pi*f3/fs;
& h6 C# q( ]1 |6 g# z0 F2 Kws2=2*pi*f4/fs;8 j9 j5 | m3 j$ Z; k: K7 n, a$ {
beta=0.1102*(As-8.7);+ t; l" |+ ?" t" }' i; {2 i! Y6 M: e
Bt=min(abs(ws1-wp1),abs(ws1-wp1));
k) w& e# G7 e! X2 r5 A6 ~) W% ^7 m+ @N=ceil((As-7.95)/2.285/Bt);%定义滤波器的阶数
9 I7 t/ b/ X" Tb=fir1(N,[0.5*(f2+f1)/(fs/2),0.5*(f4+f3)/(fs/2)],'stopp',kaiser(N+1,beta)); %输入的参数分别是滤波器的阶数和截止频率- A1 E8 h$ X/ D( O! k1 k9 Z D
figure(1) W* ^- r/ |9 o3 }5 E9 i) L% g: w) L
[h,f]=freqz(b,1,512);%幅频特性图
0 k6 x# L0 n3 T4 @# mplot(f*fs/(2*pi),20*log10(abs(h)))%输入参数为频率与幅值: @3 x6 [( F/ b6 m9 y
title('滤波器的增益响应');xlabel('频率/赫兹');ylabel('增益/分贝');2 {& Q; |8 ]( `. `$ T; ?
figure(2)& F; C& Q8 A8 J8 p2 z9 f3 j. A9 W
subplot(211)
# @3 D' l5 ?8 ut=0:1/fs:0.1;%定义时间范围和步长
# n& ], Q" `# G# b- r" S5 if5=100;f6=200;f7=500;%输入信号频率
5 l$ @! w- `3 |, Rs=sin(2*pi*f5*t)+sin(2*pi*f6*t)+sin(2*pi*f7*t);%滤波前信号" Z! q7 u) @4 _0 p, T9 J6 l
plot(t,s);%滤波前的信号图像$ r0 u9 Q# h8 Q8 {4 M
title('信号滤波前时域图');xlabel('时间/秒');ylabel('幅度/伏');) g1 |2 Q, y+ d$ J- d2 ?4 M
subplot(212)
% b! \- J7 V& |' h# H: _) R0 U5 M( X8 LFs=fft(s,512);%傅里叶变换8 @6 Q/ D8 j, X, n
AFs=abs(Fs);%信号频域图的幅值
~% O# V; V8 ^4 K! n) E* Y- T& jf=(0:255)*fs/512;%频率采样
; V5 W" u; F2 R" m0 qplot(f,AFs(1:256));%滤波前的信号频域图. q4 s3 j' E, s7 A& k
title('信号滤波前频域图');xlabel('频率/赫兹');ylabel('幅度');! z1 `# ~* x6 h3 \ q3 w$ Q2 W3 t* B" [
figure(3)
0 w$ A k( W1 f6 j! lsf=filter(b,1,s);%对信号进行滤波 w5 B6 Q; S H5 S/ o8 k
subplot(211)
8 f# J; Y# T( s; Xplot(t,sf)%滤波后的信号图像) x# X! g) M. Z
title('信号滤波后时域图');xlabel('时间/秒');ylabel('幅度/伏');8 t3 S* G( {( V3 }* k4 K8 U9 \
axis([0 0.1 -2 2]);%限定坐标范围
3 `: Y$ X1 B; q" b* J% Fsubplot(212)
3 b; g7 w6 o' ~Fsf=fft(sf,512);%滤波后的信号频域图4 W0 e9 {# E3 r8 Z
AFsf=abs(Fsf);%信号频域图的幅值2 ` V' |1 G2 j% x8 u2 I
f=(0:255)*fs/512;%频率采样; C1 w2 c) a$ P
plot(f,AFsf(1:256))%滤波后的信号频域图; r) O/ c1 @0 B) k |
title('信号滤波后频域图');xlabel('频率/赫兹');ylabel('幅度');: G, ?' l8 Q6 T& d% V1 g% l
为什么MATLAB运行的时候b=fir1(N,[0.5*(f2+f1)/(fs/2),0.5*(f4+f3)/(fs/2)],'stopp',kaiser(N+1,beta));会报错。 |
|