![]() |
急求!关于MATLAB中FFT后的相位问题
2 个附件
针对一个普通的正弦信号使用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('相位-频率曲线图'); |
回复: 急求!关于MATLAB中FFT后的相位问题
程序计算的结果没错,但频率分辨力是50Hz,直接来分析49.8Hz的信号,这方法有问题,不能得到正确的结果
|
回复: 急求!关于MATLAB中FFT后的相位问题
[QUOTE=_l_;35100]程序计算的结果没错,但频率分辨力是50Hz,直接来分析49.8Hz的信号,这方法有问题,不能得到正确的结果[/QUOTE]
谢谢你的回复~那么频率分辨率就是50Hz,就没法针对频率小的偏差进行计算了吗?我目的主要是在有小的频率偏差情况下,验证采样点越多,幅值、相位的计算就越接近实际值。还有其他办法吗? |
所有时间均为北京时间。现在的时间是 06:53。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.