EDA365电子论坛网

标题: 关于fft与加窗fft [打印本页]

作者: fanA    时间: 2022-9-20 16:18
标题: 关于fft与加窗fft
用matlab仿真fft算法时,分别采用直接fft和加窗fft仿真,为什么加窗后的结果还不如不加窗的呢?" L5 \7 K( x% M: z
程序如下:
+ S+ F+ f# ]: ]$ D! \3 Y直接fft程序:
0 ?* H$ j& r: B. d) j7 w0 Pclear;
+ o  [" o- P, J  T6 C; l3 u; K4 P' pfs=12800;. U; n* E9 I# }, L5 a' B/ g) G
N=256;
' P4 }9 h  F5 X* ?2 et = 0:1/fs:0.02-1/fs;5 b5 {" }/ k% W# T
y=cos(2*pi*50*t+10*pi/180)+cos(2*pi*300*t+20*pi/180); %模拟输入信号' o* P3 i( I6 K
Y = fft(y,256);
8 p0 u9 |. M( K' ?9 jPyy =abs(Y(1:256))*2/256; %幅值: S% _8 t: g7 M3 y
pha=angle(Y(1:256))/pi*180; %相位
9 H& Q& e$ N* ~0 w" R8 ~% w; R" r* ?3 h* ]4 r9 X6 \
加窗fft程序:* t) s' X9 m' A$ R; A& A( y
clear;9 x/ w: R. j- d. h2 J. N) c) Q; U6 v
fs=12800;
' R7 ^8 s. S* v3 E  mN=256;* D+ R8 Q* L' c7 [4 [& {
t=0:1/fs:0.02-1/fs;
, V* Z0 P7 d: N# K1 dx=cos(2*pi*50*t+10*pi/180)+cos(2*pi*300*t+20*pi/180); %模拟输入信号/ K3 \. H1 e2 l4 ?
n=[0:N-1];
; A0 N+ G: t$ `# j1 bw=0.5-0.5*cos(2*pi*n/N); % 汉宁6 p9 q" a$ f4 g7 B0 P3 ?
y=x.*w;
# D+ ^1 A, R! q8 u; h8 o- W2 DY = fft(y,N);: `% n7 o" f% W* h
Pyy =abs(Y(1:N))*2*2/N; %幅值
3 h! q- J9 n. e- _pha=angle(Y(1:N))/pi*180; %相位0 L) w3 y$ j! l6 `! r* x
8 Y- h1 ^. G9 K  C9 ~! ^
加窗的频谱泄漏为何更严重?/ I1 |! @! |: F) Q2 t8 d+ o# Z

作者: Jame33    时间: 2022-9-20 16:51
我没有用你的程序仿真,单一般这样的问题造成的原因是,窗函数不正确,窗的类型没选对,比如衰减度并不符合你原来信号频谱的要求。- z3 y! M, N' Z5 u. D5 P

作者: ESCAPE    时间: 2022-9-20 17:09
你可以试试用MATLAB自配的窗函数试试,用凯撒窗通过调BETA值可以调整衰减度,多试几次对比一下,慢慢就能看出结果了。
0 t! D+ X; s" l4 t4 n4 X$ G




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2