|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
有关凯塞窗设计带阻滤波器问题请教大神。感谢!7 d" s- e: G. T1 {
; j* |9 @3 } \$ ?) P1 z! h
clc;9 _# u. e0 f0 h7 |) E
clear;/ p8 |- M$ @$ N) p8 | Q: Z) e
f1=150;f2=250;f3=350;f4=450;%定义通阻带频率
+ A9 m' ~0 ?& u0 Q5 Q: M2 }fs=2000;%采样频率
3 \* t. E- v C: V p% CAs=80;
( N7 j$ X% d/ [! h) iws1=2*pi*f1/fs; 7 W, I8 R9 A, x) p, i D
wp1=2*pi*f2/fs;$ Z; V6 w0 a, F, u
wp2=2*pi*f3/fs;
& A" |2 f' _; mws2=2*pi*f4/fs;
/ j" o8 w+ D5 }. O. ~' _beta=0.1102*(As-8.7);- J. n! O# c+ ] t$ |# k
Bt=min(abs(ws1-wp1),abs(ws1-wp1));* F2 y" ?6 \4 y8 Q8 P: H1 k* I q
N=ceil((As-7.95)/2.285/Bt);%定义滤波器的阶数( e; ~$ [6 {' O# g1 ~; a
b=fir1(N,[0.5*(f2+f1)/(fs/2),0.5*(f4+f3)/(fs/2)],'stopp',kaiser(N+1,beta)); %输入的参数分别是滤波器的阶数和截止频率6 t" u! ?3 o6 ]7 X4 [+ q1 s
figure(1)+ a7 J. Q1 K6 u1 W
[h,f]=freqz(b,1,512);%幅频特性图
* L/ h: S$ M8 U. o. q- j0 o/ oplot(f*fs/(2*pi),20*log10(abs(h)))%输入参数为频率与幅值
* B3 ` o( Z) _- `! Ftitle('滤波器的增益响应');xlabel('频率/赫兹');ylabel('增益/分贝');
3 s# T- @6 I( X, Y0 Z% g0 O7 ~figure(2)
) u. t2 k! O* d7 M5 j7 @subplot(211)6 B$ I& e/ w- U9 o7 [; U/ v- {
t=0:1/fs:0.1;%定义时间范围和步长" _. u" _9 j+ G* B
f5=100;f6=200;f7=500;%输入信号频率' ~4 _$ g; r3 ^
s=sin(2*pi*f5*t)+sin(2*pi*f6*t)+sin(2*pi*f7*t);%滤波前信号
3 Y0 Q0 |. A5 _4 V' Dplot(t,s);%滤波前的信号图像6 F8 v( F \8 R8 M
title('信号滤波前时域图');xlabel('时间/秒');ylabel('幅度/伏');* J6 ^; l' o: j0 S2 I. O1 j
subplot(212)
L( k/ s. K" Z1 |' Z8 K `' G Z: u" LFs=fft(s,512);%傅里叶变换4 P1 n) d) g5 S" ^+ `
AFs=abs(Fs);%信号频域图的幅值
. l+ s+ @7 r* f/ N! d2 ^0 Z$ O" l% gf=(0:255)*fs/512;%频率采样6 U7 O$ j1 s+ y8 R
plot(f,AFs(1:256));%滤波前的信号频域图& d4 p! g& {2 O; h+ u
title('信号滤波前频域图');xlabel('频率/赫兹');ylabel('幅度');3 r' h& u$ K8 t) c$ q
figure(3)
0 Z4 j' q& ?+ g9 k% Wsf=filter(b,1,s);%对信号进行滤波2 F6 m: o+ T" U* _ a/ {
subplot(211)
/ f0 s4 i+ Z, ^' [* J) L# t4 fplot(t,sf)%滤波后的信号图像 |1 {; _3 o. A$ v5 A
title('信号滤波后时域图');xlabel('时间/秒');ylabel('幅度/伏');/ W0 b/ x$ @% l$ @ W
axis([0 0.1 -2 2]);%限定坐标范围
' m$ M7 X% B. t1 _6 s0 Tsubplot(212)
; b- P0 O! s2 fFsf=fft(sf,512);%滤波后的信号频域图- c" W9 c3 m8 [2 q& ?
AFsf=abs(Fsf);%信号频域图的幅值
6 W4 k `- v) Xf=(0:255)*fs/512;%频率采样7 s4 g- B" b9 g# D4 N- m: R
plot(f,AFsf(1:256))%滤波后的信号频域图& z, R( |* _* @% E, G! [
title('信号滤波后频域图');xlabel('频率/赫兹');ylabel('幅度');
' ^8 L, V& C3 i( m8 ]% B8 [" L5 Z为什么MATLAB运行的时候b=fir1(N,[0.5*(f2+f1)/(fs/2),0.5*(f4+f3)/(fs/2)],'stopp',kaiser(N+1,beta));会报错。 |
|