matlab只能做离散数值计算(符号计算只是小知消部分),所以绘制上述信号图形必须抽样离散化(指定时长,抽样频率等),时域图形可逐点画出,频域要做离散FFT后画出。
根据那奎斯特抽样定理,抽样频率要高于信号中最高频率的两倍,才不会失真,因此频谱中(fs/2,fs)为无用谱,故频域信号的定义域向量与值域向量都应该做减半处理
以sin(x)为例:
clear all 伍猛悉 %
N=1024 %信号的抽样点数
fs=10 %抽样腔乎频率,高于信号中最高频率的2倍
t=(0:N-1)/fs
f=(0:N-1)*fs/N
x=sin(2*pi.*t) %待处理信号sin(x)=sin(2πft),f=1hz
y=abs(fft(x)) %FFT后求模
f=f(1:N/2) %减半
y=y(1:N/2) %减半
subplot(2,1,1) %画图
plot(t(1:2*fs),x(1:2*fs)) %只画2个周期
subplot(2,1,2) %画图
plot(f,y)
t=0:0.01:1f=1:5[t,f]=meshgrid(t,f)
y=sin(2*pi*f.*t)
waterfall(t,f,y)%就这森和李样,你棚物可以照样画葫芦
xlabel('t')ylabel('此迟f')zlabel('y')
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)