如何用matlab FFT得到一个基波为50HZ的三相电压信号的基波、谐波信号频谱图?急求!谢谢!
1个回答
展开全部
%假设x为三相电压某一相的采样数据构成的数组,N为数组长度。
y=fft(x,N); %对信号进行快速Fourier变换
mag=abs(y); %求得Fourier变换后的振幅
f=n*fs/N; %频率序列
plot(f(1:N/2),mag(1:N/2)); %绘出Nyquist频率之前随频率变化的振幅
xlabel('频率/Hz');
ylabel('振幅');title('f=50Hz');grid on;
y=fft(x,N); %对信号进行快速Fourier变换
mag=abs(y); %求得Fourier变换后的振幅
f=n*fs/N; %频率序列
plot(f(1:N/2),mag(1:N/2)); %绘出Nyquist频率之前随频率变化的振幅
xlabel('频率/Hz');
ylabel('振幅');title('f=50Hz');grid on;
更多追问追答
追问
三相电压叠在一起,也可以这样吗,比如y=a.signals.values;为从示波器中直接提取的信号值,基波为50HZ,求出每隔一段频率得到一个幅值的这种频谱图,应该怎么写程序,谢谢
追答
先根据数据存储格式读入至数组即可。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询