EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 QqWw11 于 2020-10-13 14:06 编辑
7 S0 ?$ l% F1 ~# y& H2 a7 m7 i' N; P+ z1 p
1、目的 学习MATLAB的filter函数的使用,通过设计低通、带通和高通滤波器对其进行仿真 2、用到的主要函数和工具 MATLAB、FDATOOL、filter、fft 3、设计 - # U$ e# \; d+ e0 D
7 d; `, q" U0 H0 G2 {$ A4 ?%% Parameter InteRFace& b; z8 B% g- r
- 9 Y8 F1 e$ }2 j9 J, i4 J& E
/ A! t7 D* W+ o. [, p# @Frequence0 = 60; %单位:Hz + u0 W/ P- Y) b, l, l- z& j; _& h
! ^& C b+ L) ^; B
% [3 @9 q7 o9 q* |Frequence1 = 130; %单位:Hz
+ _; T' V3 `$ Q* x% J
/ E4 d8 W. ]/ d% [
% y3 l6 L8 {% s; L( m+ rFrequence2 = 1e3; %单位:Hz4 S) R: o: b/ G- z$ O% A# B4 D
1 z7 x; E* T* v" U2 m
# o5 x5 d0 N1 ~* }( n4 d) l: W1 l" jSampleFre = 4e3; %单位:Hz8 u7 Z6 d4 M& K: k3 D
- , _' Q/ O4 a- a3 Q! J9 `2 R
' B; T9 `5 G0 m0 N" z! u
SampleLen = SampleFre; %采样点数6 l* `) F h1 Q
- 8 v+ Q+ S9 B# n5 k7 ~
; S, p1 h4 W( K W%% Main
8 ?+ Z- }8 y% Q: S - 1 Q. T; I) Q/ _
! x- }* V7 @! O0 ?! y6 \
%-------------------产生三路信号
! @. N) \9 q, C* T0 z: V - 6 I1 X+ ]. {. B" p0 T* ]8 _9 Z) J3 f
8 e( Z, j9 b; d5 D) c. Xt = 0:1/SampleLen:1/SampleFre*(SampleLen-1);* B* x# C! Z4 E
- , b0 q4 a7 A/ l
, P0 D" s7 G4 w& P6 j4 O5 rSignalData0 = sin(2*pi*Frequence0*t);9 q" M! r1 u O7 U
8 P. A. A( F7 G3 B# h) w, b* f- C
SignalData1 = sin(2*pi*Frequence1*t);1 P( B C& D4 g/ h& T
- ) p" i. [; h v0 Z- i+ r/ j& |
^; v/ G9 v' A2 ]; i* jSignalData2 = sin(2*pi*Frequence2*t);
5 k9 H7 D+ z1 q0 t. U3 B - C: ~' L0 |2 q0 {/ K' b
. `3 P* x+ V& D, A) c$ ISignalData3 = SignalData0+SignalData1+SignalData2;! k; i0 c2 d4 C! A4 L/ ^
- 2 D) [, D2 y# `. ]4 n, X
4 o D" O7 J* X8 t
figure;hold on
& K6 M' x$ v3 K9 O. o; I - - e7 T% ] O" B# P# [# g
2 j" y% a9 P' G, x/ V
plot(t(1:150),SignalData0(1:150),'b')
3 n: L$ S3 c: p- E# Q5 F - . q/ X5 y: n8 F6 j
! ~0 z) X5 j$ }- Z6 a _3 g0 m
plot(t(1:150),SignalData1(1:150),'r')
1 D9 A j! j R) T0 V! d
8 @8 D& ~, v" G/ v9 E# u) u; p/ q% z2 ^! O6 o: X
plot(t(1:150),SignalData2(1:150),'k')
- r& O- F; d% ]+ Q. v6 y! U- 1 C0 D; |% G' H' s2 u$ o
8 A& ?- z. z @
hold off
2 Q& W8 \( }% a) v+ {
# K9 l& @% p. W- _, C+ L: \% F1 j, S) M9 z U& g+ V
figure;plot(t(1:150),SignalData3(1:150))! X1 \+ O% x: k. v- z
0 m# a3 k8 x, R) h; K# W1 z
( F' Q- i7 G+ i: m3 n7 q$ @- y% s: Ititle('三路信号求和')2 u! S6 M$ Z D! k: \- j( S
& X+ p2 K9 r+ L
- 三路信号的时域波形
- : h/ D2 T* L6 H3 f# s1 E
![]() ![]()
三路信号时域波形 三路信号求和时域波形 - 三路求和信号频谱分析9 m" ^3 ^7 x; i I7 g3 j+ s4 y
FFT_Data = fft(SignalData3);![]()
2.低通滤波器设计 - 基于fdatool的低通滤波器的设计
$ t. c1 x% m7 H' |
在MATLAB命令行执行fdatool命令,弹出滤波器设计交互窗口,根据自己的需求设计符合自己要求的滤波器,这是设计的低通滤波器见下图
![]()
需要注意的是通过设计Fpass和Fstop确定了滤波器的带宽,同时参数设计的越接近理论滤波器的性能,滤波器的阶数越多,计算量越大,所以需要优化滤波器这两个参数,在保证性能的同时确保阶数越小(计算量越小) LPF_Data = filter(LPF_Coe.LPF_60M,1,SignalData3);滤波后的时域和频谱波形
![]() ![]()
3.带通和高通操作步骤大体一致就不详细说明 5 r! j; D$ [; C$ V, r0 B
4、备注 1、滤波器出数有一定延迟,这在具体调制解调过程中需要注意
, p* l+ ^/ U" x& @1 W* Z d |