EDA365电子论坛网
标题:
关于fft与加窗fft
[打印本页]
作者:
fanA
时间:
2022-9-20 16:18
标题:
关于fft与加窗fft
用matlab仿真fft算法时,分别采用直接fft和加窗fft仿真,为什么加窗后的结果还不如不加窗的呢?
' b3 y G- _5 M4 C+ m8 \( J+ B" }
程序如下:
* u# {& b1 P- k! D, B
直接fft程序:
, ^) z$ @: ^% Z$ p6 z0 H" f
clear;
7 r6 A' c# E4 @0 x) t z- _0 G! b
fs=12800;
0 p e8 w3 u" x9 |4 M
N=256;
4 J' u4 M" ?6 a
t = 0:1/fs:0.02-1/fs;
0 Y8 T B; d h4 j. G. D' M
y=cos(2*pi*50*t+10*pi/180)+cos(2*pi*300*t+20*pi/180); %模拟输入信号
2 d$ N& l0 ` j7 X. S2 Z5 z/ h9 O
Y = fft(y,256);
6 V- Y5 r4 D9 O' p/ B
Pyy =abs(Y(1:256))*2/256; %幅值
# F! M: ?( C$ Z+ ~0 k4 }5 r. R
pha=angle(Y(1:256))/pi*180; %相位
7 t: s$ V* q4 M# o& `# k1 i7 U
5 U1 Z, F4 o& J1 C
加窗fft程序:
3 E2 G. ?* G0 U/ B3 A/ u& a7 O
clear;
3 {7 r+ d7 Q# c' ?- P- n# D
fs=12800;
8 v2 Y+ s6 o, {. X0 i- |
N=256;
9 v( v- _4 Z3 @2 e! T
t=0:1/fs:0.02-1/fs;
* W f) T, Q, b. _- r# R
x=cos(2*pi*50*t+10*pi/180)+cos(2*pi*300*t+20*pi/180); %模拟输入信号
# n M' o2 A& y
n=[0:N-1];
$ o2 n' `$ Z0 e) k# O! `6 {
w=0.5-0.5*cos(2*pi*n/N); % 汉宁
% r) ^: a$ t8 p5 h. ~- J
y=x.*w;
% y' @# Q" n2 T
Y = fft(y,N);
# B( }& E8 u6 _% T2 V
Pyy =abs(Y(1:N))*2*2/N; %幅值
- G+ M# V' N- e1 E2 h
pha=angle(Y(1:N))/pi*180; %相位
, J3 _" @& F) R/ I- @
# j3 V' l- n& H! g Q# b! Y
加窗的频谱泄漏为何更严重?
/ M; q. t v' Y
作者:
Jame33
时间:
2022-9-20 16:51
我没有用你的程序仿真,单一般这样的问题造成的原因是,窗函数不正确,窗的类型没选对,比如衰减度并不符合你原来信号频谱的要求。
8 N0 q3 `$ Y; I6 Y
作者:
ESCAPE
时间:
2022-9-20 17:09
你可以试试用MATLAB自配的窗函数试试,用凯撒窗通过调BETA值可以调整衰减度,多试几次对比一下,慢慢就能看出结果了。
- z. z3 W/ N: q
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2