EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 QqWw11 于 2020-10-13 14:06 编辑 $ C0 O0 X! j) u" n
- c! f1 U9 x: ~% C8 P1 {
1、目的 学习MATLAB的filter函数的使用,通过设计低通、带通和高通滤波器对其进行仿真 2、用到的主要函数和工具 MATLAB、FDATOOL、filter、fft 3、设计 - 信号的产生+ g9 |, k4 {9 ^, Q* _& i" z r. i
- # z% e0 ^- T# Y" K' z0 w
8 Q9 w. `7 W3 j" L' x
%% Parameter InteRFace
( \- \4 _* m r& [! c. Z4 z! z0 Z - . M4 S( e- u: H* \/ Q# l' t6 R, o
]5 }3 i$ Q( Z8 y. Q7 x; \
Frequence0 = 60; %单位:Hz
% h+ o( @2 h0 f& r
5 W& C) t( }2 j% e
. w# O+ B- r5 H; I" ^, Y9 HFrequence1 = 130; %单位:Hz
3 f* v7 q3 d9 K8 S5 D" b
) G- \2 ]2 t% l7 j" d" v
8 J2 W8 I# ~5 p) l ]6 B! K* v. iFrequence2 = 1e3; %单位:Hz; `! s$ O! z: z# P' X! N+ n
) g/ G9 _; _- m' y* Z p. Y/ Y8 o; _( E( ?. x4 }7 B( h& \' N/ X/ X% X
SampleFre = 4e3; %单位:Hz
! @# Y. {5 O3 p3 X# u- / o/ {% v0 @1 _- M* L
. ]& `+ ?9 x8 W' e4 _6 X# Y5 v3 F
SampleLen = SampleFre; %采样点数
: b! [9 k7 C$ S) n- q: s, U - / J% t& z4 S" q/ O8 a: X
4 C1 l' v; m1 ]" S* P( _1 k%% Main0 S3 t, m% P# d" ]8 y
* ?8 D) W2 e( ?/ k: v" d) q5 a' n. d A9 @& j+ J# _% b5 X
%-------------------产生三路信号
! ^1 @- t2 i! m/ s( Z
4 F: h V( |; j& U" [
7 i9 e; x* r5 {: ?2 T7 dt = 0:1/SampleLen:1/SampleFre*(SampleLen-1);
, I5 J) \1 s5 w
& D9 W8 d8 m5 U) k/ \
! V- D! T0 X: ySignalData0 = sin(2*pi*Frequence0*t);3 T& @3 ~9 f7 } a. q
- # \2 R+ h- m1 r
( [4 A9 N( H# c$ F9 ?SignalData1 = sin(2*pi*Frequence1*t);
# e1 @2 q% Z3 a3 s9 m& u# x
' n( n- e5 D1 k: x8 }$ C( a+ F/ L+ r+ ^) l: d. N4 L- V
SignalData2 = sin(2*pi*Frequence2*t);" \+ @+ w& ?5 F$ a+ W# p9 p
. }/ Z7 u8 Y5 T8 j- t7 e% G* F
% E# f' F9 {3 I) N/ u# rSignalData3 = SignalData0+SignalData1+SignalData2;; K8 @( ~8 W7 n( D% R1 Y* |
6 o+ I" {9 S6 C+ l6 `1 b0 U. r5 d) e& u4 H. k( s2 b
figure;hold on4 f/ P$ F/ P% k0 o) t. I
( ]9 R2 q0 a; F5 \2 R1 [- Z1 p* I* _7 @9 r4 Q! j5 j% K( r2 Q
plot(t(1:150),SignalData0(1:150),'b')1 ~5 n6 V$ M# b
- ' m+ X& y Z* n" s7 t: d
+ E& F; q4 y1 \( ]! b
plot(t(1:150),SignalData1(1:150),'r')1 ^) h k" n" R6 j5 ^
) L. { s& Q. t: J: r6 F7 `: P/ i: U
5 D a1 f# X: j9 l" Q- a# tplot(t(1:150),SignalData2(1:150),'k')1 k6 h3 w8 ^; a' [2 c
/ h' W, d" w- q1 k$ x& s) W
9 w9 p2 M0 ^/ ?+ u, }hold off
, g/ J! \( x: b/ b @+ M6 C* D7 t
$ ^5 y6 g; i8 c( D1 G" p: f
1 K) I0 D) r1 tfigure;plot(t(1:150),SignalData3(1:150))- f3 P; {5 m C4 [" }' v
- 4 |+ F# A. V. p: k
4 X7 |" `# P* e& {: x
title('三路信号求和')
8 p$ x+ m1 l, X" ?% K$ u' n6 r7 Z, u2 p, a0 F H
![]() ![]()
三路信号时域波形 三路信号求和时域波形 - 三路求和信号频谱分析1 |) f- \/ Z% o2 n1 v3 }7 E
FFT_Data = fft(SignalData3);![]()
2.低通滤波器设计 - 基于fdatool的低通滤波器的设计
$ K8 ]; [. L Z% h! a8 c9 x _
在MATLAB命令行执行fdatool命令,弹出滤波器设计交互窗口,根据自己的需求设计符合自己要求的滤波器,这是设计的低通滤波器见下图
![]()
需要注意的是通过设计Fpass和Fstop确定了滤波器的带宽,同时参数设计的越接近理论滤波器的性能,滤波器的阶数越多,计算量越大,所以需要优化滤波器这两个参数,在保证性能的同时确保阶数越小(计算量越小) LPF_Data = filter(LPF_Coe.LPF_60M,1,SignalData3);滤波后的时域和频谱波形
![]() ![]()
3.带通和高通操作步骤大体一致就不详细说明
" s$ F) l, C2 c4、备注 1、滤波器出数有一定延迟,这在具体调制解调过程中需要注意
D/ M) k9 `( }6 }$ x |