MATLAB中的FFT应用

2024-11-25 03:42:22
推荐回答(1个)
回答1:

如果没看错是再求信号的功率谱,
Fs=2048; % 设定采样点数
FFTN=1024; %设定FFT点数
t=(0:1023)/Fs; % 设定正弦信号的采样时间点
x=2*sin(2*pi*256*t+pi/8); % 产生正弦信号
y=fftshift(fft(x,FFTN)); %****************************这句没太看懂,应该是求信号的功率谱,但结果是复数,需取模,这句需楼主在核实下
yam=abs(y)*2/FFTN; %需取模,
f=((0:FFTN-1)-FFTN/2)*Fs/FFTN; %设定画图时的横坐标,Hz为单位
figure(1);plot(f,yam);xlabel('f(Hz)');ylabel('幅值'); % 以横坐标Hz,纵坐标取模结果,画图,
[amax index]=max(yam); %取纵坐标最大值和序号
gmax=angle(y(index)); %***********************这句也没太看,取出模值最大值进行什么处理,
fmax=f(index); %取出模值最大点对应的频率值
以上除了*******标注的,其他应该没问题,楼主在看看那两句吧,查查matlab的help