如何使用Matlab,对一组数据进行FFT变换,得到频谱分析,万分感谢。

如何使用Matlab,对一组数据进行FFT变换,得到频谱分析,万分感谢。,第1张

看看下面的程序,应该能帮上你的忙,已经通过调试:

Fs=256;

%采样频率(Hz)

N=256;

%采样点数

t=[0:1/Fs:N/Fs];

%采样时刻

S=2+3cos(2pi10t+pi30/180)+cos(2pi20t+pi90/180);

%我的调试信号,你自己是电流电压数据的话,最开始通过load指令载入就是

Y

=

fft(S,N);

%做FFT变换

Ayy

=

abs(Y);

%取模

Ayy=Ayy/(N/2);

%换算成实际的幅度

Ayy(1)=Ayy(1)/2;

F=([1:N]-1)Fs/N;

%换算成实际的频率值,Fn=(n-1)Fs/N

stem(F(1:N/2),Ayy(1:N/2));

%显示换算后的FFT模值结果

title('幅度-频率曲线图');

1读取wav文件

# -- coding: utf-8 --

import wave

import pylab as pl

import numpy as np

# 打开WAV文档

f = waveopen(r"c:\WINDOWS\Media\dingwav", "rb")

# 读取格式信息

# (nchannels, sampwidth, framerate, nframes, comptype, compname)

params = fgetparams()

nchannels, sampwidth, framerate, nframes = params[:4]

# 读取波形数据

str_data = freadframes(nframes)

fclose()

#将波形数据转换为数组

wave_data = npfromstring(str_data, dtype=npshort)

wave_datashape = -1, 2

wave_data = wave_dataT

time = nparange(0, nframes) (10 / framerate)

# 绘制波形

plsubplot(211)

plplot(time, wave_data[0])

plsubplot(212)

plplot(time, wave_data[1], c="g")

plxlabel("time (seconds)")

plshow()

2观察信号频谱

# -- coding: utf-8 --

import numpy as np

import pylab as pl

sampling_rate = 8000

fft_size = 512

t = nparange(0, 10, 10/sampling_rate)

x = npsin(2nppi15625t) + 2npsin(2nppi234375t)

xs = x[:fft_size]

xf = npfftrfft(xs)/fft_size

freqs = nplinspace(0, sampling_rate/2, fft_size/2+1)

xfp = 20nplog10(npclip(npabs(xf), 1e-20, 1e100))

plfigure(figsize=(8,4))

plsubplot(211)

plplot(t[:fft_size], xs)

plxlabel(u"时间(秒)")

pltitle(u"15625Hz和234375Hz的波形和频谱")

plsubplot(212)

plplot(freqs, xfp)

plxlabel(u"频率(Hz)")

plsubplots_adjust(hspace=04)

plshow()

频谱可用CPSD函数做:

cpsd(y,y,window,noverlap,nfft,fs)

这里window是加窗函数,一般默认就可以了,noverlap是覆盖数据个数,一般noverlap=05nfft,fs是采样频率

比如:t=0:001:100;采样频率是1/001=100Hz

y=(1+02sin(902pit)+02sin(1502pit))cos(108110^62pit)

那么cpsd(y,y,[],512,1024,100)

以上就是关于如何使用Matlab,对一组数据进行FFT变换,得到频谱分析,万分感谢。全部的内容,包括:如何使用Matlab,对一组数据进行FFT变换,得到频谱分析,万分感谢。、谁知道如何在python中用处理wav文件,并且对他的频谱进行分析的程序、麻烦matlab高手帮忙做出这个信号的频谱,我是菜鸟,刚接触matlab,真心不懂,请多指教!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9589271.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存