matlab,对离散数组,进行傅里叶变化!!!!

2024-12-30 19:07:48
推荐回答(2个)
回答1:

上面一位网友的答案中已经对对信号采样得到x了,你忽略x 的来历只管是实验测得的就好了。采样频率改成你实际的采样频率,数据点数要凑一个2的幂次的形式并且要大于你实际信号的采样点数。其他都不变。

回答2:

参考一下这个例子
例:x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t)。采样频率fs=100Hz,绘制N=128点幅频图。

clf;
fs=100;N=128; %采样频率和数据点数
n=0:N-1;t=n/fs; %时间序列
x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); %信号
y=fft(x,N); %对信号进行快速Fourier变换
mag=abs(y); %求得Fourier变换后的振幅
f=n*fs/N; %频率序列
subplot(2,2,1),plot(f,mag); %绘出随频率变化的振幅
xlabel('频率/Hz');
ylabel('振幅');title('N=128');grid on;
subplot(2,2,2),plot(f(1:N/2),mag(1:N/2)); %绘出Nyquist频率之前随频率变化的振幅
xlabel('频率/Hz');
ylabel('振幅');title('N=128');grid on;