|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
求fft高手为我解答!( g1 M# e% E6 B. z# L' k" a1 a" d( d
我现在遇到的问题是:
& Z( g6 v3 r; t' R在matlab中我的输入信号为:
$ {9 q) `# K o. N9 o) y, f! s% GS=Adc+A1*cos(2*pi*50*t+pi*P1/180)+A2*cos(2*pi*75*t+pi*P2/180);$ O% T, G3 E6 ~8 b2 m& e% {
取256点,通过FFT后,结果如图一所示:通常看图形的左半面,可以容易的看出50赫兹和75赫兹的信号
# k* r% {) S v2 m7 o1 x而我把输入信号改为:
( T, s& Y5 a- Q% T$ Q8 YS=Adc+A1*cos(2*pi*50*t+pi*P1/180)+A2*cos(2*pi*150*t+pi*P2/180);
. R5 n4 U! p" k# M此时看图二,还是看左半面,我看到的是50赫兹和130赫兹的信号。。。真正的信号跑到右半面去了。。。。* T2 ?# @4 G E3 ?9 d9 \
如果我们的信号是未知的,那到底如何通过频谱图分析信号呢?
?/ e! ?4 A7 ?5 t' L5 e# Z7 }我就没有多少财富。。。。就50啦。。。希望高手看下。。。 h7 ?9 @$ ?& Z3 x& T5 ~! ^, `; [4 X) [1 v
我matlab的程序为:# @7 S. z5 o9 V8 l4 [/ R( S
close all; %先关闭所有图片
, w. e) }4 l0 g/ VAdc=2; %直流分量幅度& i: f* o2 g! {
A1=3; %频率F1信号的幅度. T8 t3 g- V* t0 H% d
A2=1.5; %频率F2信号的幅度
9 \* U5 [. k T5 {% L; R. MF1=50; %信号1频率(Hz)
# \8 U/ z+ {& _3 i# L% d& `F2=75; %信号2频率(Hz)
2 v" b5 P3 c+ L" q5 t* SFs=256; %采样频率(Hz)9 Z) j9 |5 n3 Q- Z1 Y
P1=-30; %信号1相位(度)3 t' K$ Z- C6 D1 ?: H
P2=90; %信号相位(度)" S; L* ~" T4 _' G! B, `1 k) {
N=256; %采样点数$ e' O& m5 c8 B* i7 ^
t=[0:1/Fs:N/Fs]; %采样时刻
' M. I9 y' C( z%信号
) P' B3 a U* j, Y8 ~ @# g5 V8 AS=Adc+A1*cos(2*pi*F1*t+pi*P1/180)+A2*cos(2*pi*F2*t+pi*P2/180);+ d7 ^- q4 A( Q1 X7 k
%显示原始信号
$ F4 P! b% T5 }+ Y eplot(S);9 r7 k6 e6 w: z, B1 C6 z
title('原始信号');
7 W' q7 o4 D9 c& y4 M9 P( [! Lfigure;9 r) W6 ~" e% d9 [# u
Y = fft(S,N); %做FFT变换+ Q+ L$ W. l7 f
Ayy = (abs(Y)); %取模
1 X: r4 B( A, }; a( R* A5 mplot(Ayy(1:N)); %显示原始的FFT模值结果
6 ^4 p; n9 z6 r! Ktitle('图1');9 q1 W) l, l/ y z% }* b
figure;& C4 v" m8 R$ F
Ayy=Ayy/(N/2); %换算成实际的幅度
: g; h+ K5 Z I& ?9 r! ]Ayy(1)=Ayy(1)/2;
. F- X* p& `: p: ?. e( ~F=([1:N]-1)*Fs/N; %换算成实际的频率值" `3 o$ m. ?; L, e+ `1 Q
plot(F(1:N/2),Ayy(1:N/2)); %显示换算后的FFT模值结果' }* D l { x' b' L$ h0 C6 d
title('幅度-频率曲线图');
5 |* v% H5 _7 e! P; h0 Qfigure;; Z7 t5 G- [& [2 F/ P( b' w
Pyy=[1:N/2];; X6 w; v* c1 i! t$ C2 W: R! l
for i=1:N/23 U( q Q0 ]1 U" M
Pyy(i)=phase(Y(i)); %计算相位
7 N6 _* n) e, \- m. }Pyy(i)=Pyy(i)*180/pi; %换算为角度
, _$ O$ |. e4 \5 h, b+ n |0 i+ eend;# k4 j2 k" y$ n# Z9 Y1 v. G* P
plot(F(1:N/2),Pyy(1:N/2)); %显示相位图
! X1 E. @) P1 M& J' btitle('相位-频率曲线图');/ M0 M3 T2 A0 S
2 ?0 j& b; k1 O
|
|