Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2010-03-10
帖子: 3
声望力: 0 ![]() |
![]()
针对一个普通的正弦信号使用FFT计算其整周期采样信号的幅值相位。标准情况下50Hz时,相频图形没有问题。但是由于我做这个的目的是考虑频率波动情况下,采样频率设置大小对信号幅值、相位的影响,所以我把信号频率改为49.8Hz,其他诸如采样频率等都没变,结果做出来的相频图形显示相位都成负的了,这是程序的问题,还是说本来就该如此?(主要我想0.2Hz的偏差不至于使相位都成负的了吧)~~希望高手解答,附件里是2个相频图。
程序如下: clc; clear; A1=1; %频率F1信号的幅度 F1=49.8; %信号1频率(Hz) Fs=3200; %采样频率(Hz) P1=0; %信号1相位(度) N=64; %采样点数 t=[0:1/Fs:N/Fs]; %采样时刻 %信号 S=A1*sin(2*pi*F1*t+pi*P1/180); %显示原始信号 subplot(411);plot(S); title('原始信号时域图'); Y = fft(S,N); %做FFT变换 Ayy = (abs(Y)); %取模 subplot(412);stem(Ayy(1:N)); %显示原始的FFT模值结果 title('FFT 模值'); Ayy=Ayy/(N/2); %换算成实际的幅度 Ayy(1)=Ayy(1)/2; F=([1:N]-1)*Fs/N; %换算成实际的频率值,Fn=(n-1)*Fs/N subplot(413);stem(F(1:N/2),Ayy(1:N/2)); %显示换算后的FFT模值结果 title('幅度-频率曲线图'); Pyy=[1:N/2]; for i=1:N/2 Pyy(i)=angle(Y(i)); %计算相位 Pyy(i)=Pyy(i)*180/pi; %换算为角度 end; subplot(414);stem(F(1:N/2),Pyy(1:N/2)); %显示相位图 title('相位-频率曲线图'); |
![]() |
![]() |