EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 QqWw11 于 2020-10-13 14:06 编辑 ; c6 D* u2 N7 P; s! Z
, V7 w* p4 _& b0 \
1、目的 学习MATLAB的filter函数的使用,通过设计低通、带通和高通滤波器对其进行仿真 2、用到的主要函数和工具 MATLAB、FDATOOL、filter、fft 3、设计 - 信号的产生
. l7 K$ a# M/ }6 n* {# ^
- 2 G% T% F5 b' @* X
0 i9 ]4 i! \8 |' x+ G$ I* J, l
%% Parameter InteRFace0 r! ~. f* N& B$ z6 X
- ( \6 s! m6 C2 d: M$ I/ ]$ N3 ?. S \6 W
- E- `4 H1 k' ]9 E' V( b( KFrequence0 = 60; %单位:Hz
: h0 M7 T: R1 O2 g1 ^7 Y4 Y; B3 P
4 H( J3 c8 z7 W
, u0 i) W( _! N5 u. x8 e3 L9 VFrequence1 = 130; %单位:Hz
; S' v% W5 G: W
& `& y6 A: Q) Z) J7 A; {8 m3 \; k D7 J
Frequence2 = 1e3; %单位:Hz4 l3 [" n8 s( n8 n3 |: T' a- P3 p, Y
) r+ }% }/ L( G% P' F
- f1 F, Q, q* K# b; }7 f& K, USampleFre = 4e3; %单位:Hz- b- R$ h# h: e) A
. V1 ~2 w1 U% C2 T* ~3 C- f, ? y, A7 V6 Q w
SampleLen = SampleFre; %采样点数9 q; i5 q/ { \+ ?7 G
$ Z& S* _- ]( z. ^( U6 q9 H* j' ?
%% Main
0 n+ J/ z# V e: Y- z- ~, d; H& v! {0 |7 {; h$ X& Y
2 T$ t, \1 i1 Z
%-------------------产生三路信号
$ _4 H; K( l0 A5 U8 N
- ]% g. C- p- _1 s3 o
: L& h* l1 l8 j5 [& s7 }$ j9 Ot = 0:1/SampleLen:1/SampleFre*(SampleLen-1);
/ Y; c5 c8 ]) J E2 z- ]2 k9 S4 v! n- a8 M/ O" l
( l) }/ x9 }0 s, r
SignalData0 = sin(2*pi*Frequence0*t);( L! w" d! b9 n# ^1 {3 Y1 t# J
8 i q. k1 I5 d; Z- |& P0 a
% ]9 G5 a; l: p9 k. `; z& MSignalData1 = sin(2*pi*Frequence1*t);: e5 i/ s) p$ d6 n; _' A
2 U7 l6 W+ \; f* K+ V/ X* B% r; W) U& L5 u, `
SignalData2 = sin(2*pi*Frequence2*t);
& C! Z5 ^; [6 a+ _2 H
) U9 ]1 p6 ]+ g3 d8 G) |- }0 P& v. Q
SignalData3 = SignalData0+SignalData1+SignalData2;# d f- a, f8 `+ Z$ ^ {' B
- " t) \3 t A5 F1 o0 N
/ T' f" J1 O, [+ W( U, x: E
figure;hold on2 a: ]. I+ I2 w1 g$ F. G: O
- ' G- h! z R7 g: o% c' O- i, ^
/ a' z, R9 ]4 Z# m( p) u
plot(t(1:150),SignalData0(1:150),'b')4 q! t& H, |2 ]; Z" ^2 G
- $ L6 V' g$ J+ Y! J! Q2 _- q2 `0 B
# E- E+ |7 M) ~2 M: e2 E
plot(t(1:150),SignalData1(1:150),'r')
% b, X0 a9 N9 J, x% V7 u
- @2 F8 M: t) P( H( S% i+ P; a9 \- X8 j* k, n+ u; I
plot(t(1:150),SignalData2(1:150),'k')
9 C3 f. Y2 O# C0 \- S9 V$ j
$ A. w; j- I* V) {# u
, G9 a8 u' w" {* B$ A/ X& n$ Zhold off4 ` r, V6 u: m+ F; ^, z
- $ w, _2 h' h! ? E- _ f7 g
: v2 o/ ?! ?5 d& ifigure;plot(t(1:150),SignalData3(1:150))- R. D8 B0 [' `
% l7 b" d- W; h
% n6 g- Q" m4 k6 f6 x( E4 D6 Atitle('三路信号求和')
# \* c0 i% ? u( l, O1 P% L
# m, Q' l4 X0 O* s1 |
- 三路信号的时域波形
- 7 X% S9 U5 T+ P" O
![]() ![]()
三路信号时域波形 三路信号求和时域波形 - 三路求和信号频谱分析
$ i* ]( ?. N5 L. C# v6 v( A' p- Y FFT_Data = fft(SignalData3);![]()
2.低通滤波器设计 - 基于fdatool的低通滤波器的设计/ D1 S4 r A0 V5 t% _
在MATLAB命令行执行fdatool命令,弹出滤波器设计交互窗口,根据自己的需求设计符合自己要求的滤波器,这是设计的低通滤波器见下图
![]()
需要注意的是通过设计Fpass和Fstop确定了滤波器的带宽,同时参数设计的越接近理论滤波器的性能,滤波器的阶数越多,计算量越大,所以需要优化滤波器这两个参数,在保证性能的同时确保阶数越小(计算量越小) - 滤波
% ]' J) S2 l4 C4 L4 h3 C: [9 s LPF_Data = filter(LPF_Coe.LPF_60M,1,SignalData3);滤波后的时域和频谱波形
![]() ![]()
3.带通和高通操作步骤大体一致就不详细说明
: b% @. c7 l1 r/ a- S8 K) n4、备注 1、滤波器出数有一定延迟,这在具体调制解调过程中需要注意
+ B$ B. Z/ B w+ V8 {- S9 N9 J! g" _ |