redarc 发表于 2008-9-8 14:09

关于matlab中信号频谱图的横轴问题

看了不少论坛中的例程,matlab中也有自己的例程但是有一点不是很理解,严格来说不算是matlab的问题,有点偏信号问题了,不过很傻瓜,很基本的问题。
1。
直接copy的别见怪。

fs=1024;          %采样频率
N=1024;         %采样点数

t=(0:N-1)/fs;   %采样时间序列s

f=30;            %设置信号频率Hz
x=cos(2*pi*f*t);%生成信号

subplot(211);
plot(t,x);
xlabel('t/s');

xf=fft(x,N)/N;   
xf=fftshift(xf);   %双边复数谱

df=fs/N;          %频率分辨率Hz

%绘制双边幅值谱
f=(-N/2:N/2-1)*df;    %频域序列频谱图横轴
subplot(212);
plot(f,abs(xf));
xlabel('f/Hz');

2。

有的是这样画的
t=0:N-1;
f=fs*t/N; %频谱图横轴

第一种好理解,shift之后左右交换,中心频点是0频。第二种就觉得不是很理解了,采样频率是fs,能表达的信号最高频率应该是fs/2,这样画横轴的话有一半就超界了。还是说这是双边谱和单边谱的画法不同罢了,单边谱超过fs/2的部分就是属于负频率了呢? 不知道我的理解那里有错 谢谢

redarc 发表于 2008-9-9 14:50

问题比较傻瓜 还希望麻烦高手解惑
页: [1]
查看完整版本: 关于matlab中信号频谱图的横轴问题