怎么用matlab画出信号频谱分析图

请问一下,怎么使用matlab将数据采集卡采集到的信号进行频谱分析,学校毕业设计要用,但matlab只用来做图像处理,没做过信号分析,进行信号频域分析,画出频谱图!!!!!

1.假设信号域为四舍五入,向量t为n维向量,则信号的离散采样周期为Ts=1/fs=四舍五入/(n-1),其中fs为采样频率。

2.从上面的离散傅里叶公式,我们可以知道在使用FFT函数之后,我们仍然得到一个n维向量。

3.频域长度定义为lenf,满足lenf=(N-1)*Ts,实体lenf=((N-1)*(N-1)/N)/N。当N很大时,Lenf=fs。

4.到目前为止,在频域内得到的向量为f=(0:n-1)/(n-1)*lenf=(0:n-1)*fs/n。根据奈奎斯特采样定理,采样频率高于信号中最高频率的两倍,因此不存在失真。

5.因此,在谱中(fs/2,fs)是无用谱,所以域向量和频域信号的距离向量应该减半。F=F(1,N/2);Y=abs(FFT(x));Y=Y(1。n/2);我们可以画出信号的时域和频域。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-02-05
用psd,
fft
和plomb
都是可以的,如果只是需要一个图,你可以尝试plomb直接生成频谱图
第2个回答  2015-07-13
一般有两种方式话频谱图
第一种是用matlab自带的频谱分析的画图函数 (可以尝试用plomb)直接画图
第二种是先通过,fft,psd,plomb 返回频谱功率或者频谱密度,然后在直接用plot等函数画图。

如果说只是想画个频谱图看一下,那么推荐直接用plomb就足够了。
第3个回答  推荐于2017-10-06
在命令窗口输入doc fft回车后,可看到例子。

%构造出信号(如已有信号,此步可省略)
Fs = 1000; % Sampling frequency
T = 1/Fs; % Sample time
L = 1000; % Length of signal
t = (0:L-1)*T; % Time vector
% Sum of a 50 Hz sinusoid and a 120 Hz sinusoid
x = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);
y = x + 2*randn(size(t)); % Sinusoids plus noise
plot(Fs*t(1:50),y(1:50))
title('Signal Corrupted with Zero-Mean Random Noise')
xlabel('time (milliseconds)')

NFFT = 2^nextpow2(L); % Next power of 2 from length of y
Y = fft(y,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2+1);

%FFT分析
% Plot single-sided amplitude spectrum.
plot(f,2*abs(Y(1:NFFT/2+1)))
title('Single-Sided Amplitude Spectrum of y(t)')
xlabel('Frequency (Hz)')
ylabel('|Y(f)|')
第4个回答  2009-04-20
单单做频谱图上面的回答是可以的
直接对数据矩阵做fourier变换,然后画图就好了
相似回答