|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
用Matlab做FFT时,纵坐标总是很大,我很不解,例如一下这个程序:
%对模拟信号求其傅里叶频谱,并画出其时域波形图和傅里叶频谱图
%该模拟信号由已知的两个频率的简谐信号加一定的噪声信号组成
clear;close all;
N=360;fs=60; %采样点数、采样频率
f1=10;f2=15;f3=20; %正弦信号频率
n=0:N-1;t=n/fs;
x=sin(2*pi*f1*t)+1.5*sin(2*pi*f2*t)+1.8*sin(2*pi*f3*t);
X=abs(fft(x));
subplot(211)
plot(t,x);grid on;ylim([-5,5])
xlabel('t/s');ylabel('x(t)');title('信号x的波形');
subplot(212)
plot((0:length(X)/2-1)*fs/length(X),X(1:length(X)/2));grid on;
xlabel('f/Hz');ylabel('F[x(t)]');title('信号x的傅里叶频谱图');
从图1中能够看出傅里叶幅值为200,300,360,而不是我预料的1,1.5,1.8,这是怎么回事?
还有求周期方波的傅里叶级数,也有类似问题,程序如下:
%求方波函数的傅里叶级数
clc;clear;
f=1;fs=1000;N=4096;n=0:N-1;t=n/fs;
A=2*pi;T=2*pi*f;
x=A*square(T*t); %构造方波函数,峰值为A,周期为T。
X=abs(fft(x));
subplot(211)
plot(t,x); axis([0,5,-8,8]);
subplot(212)
plot((0:length(X)/2-1)*fs/length(X),X(1:length(X)/2));grid on;
xlim([0,25]);
xlabel('f/Hz');ylabel('F[x(t)]');title('信号x的傅里叶频谱图');
从图2中能够看出方波函数的频率分量,但是幅值差别很大,如何解决这样的问题?急切寻求答案! |
-
图1
-
图2
|