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 P
clear;
+ o [" o- P, J T6 C; l3 u; K4 P' p
fs=12800;
. U; n* E9 I# }, L5 a' B/ g) G
N=256;
' P4 }9 h F5 X* ?2 e
t = 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 j
Pyy =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 m
N=256;
* D+ R8 Q* L' c7 [4 [& {
t=0:1/fs:0.02-1/fs;
, V* Z0 P7 d: N# K1 d
x=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 b
w=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 D
Y = 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