Matlab谱图Hann窗
我的任务Matlab谱图Hann窗,matlab,spectrogram,Matlab,Spectrogram,我的任务 我有一个.wav格式的信号,采样频率为44100Hz。我想得到它的功率谱。我想用尺寸为200ms、窗周期为50Hz的Hann窗进行STFT。我强制的频率范围为0~22000Hz。 我的问题 我能用下面的代码得到我想要的吗? [y, Fs, nbits, opts] = wavread('a.wav'); [S,F,T,P]=spectrogram(y,hanning(8820),7938,[0:100:22000],Fs); 从上述代码返回的矩阵p就是我想要的,对吗? 进一步的问题
我有一个.wav格式的信号,采样频率为44100Hz。我想得到它的功率谱。我想用尺寸为200ms、窗周期为50Hz的Hann窗进行STFT。我强制的频率范围为0~22000Hz。
我的问题
我能用下面的代码得到我想要的吗?
[y, Fs, nbits, opts] = wavread('a.wav');
[S,F,T,P]=spectrogram(y,hanning(8820),7938,[0:100:22000],Fs);
从上述代码返回的矩阵p就是我想要的,对吗?进一步的问题
信号采样频率:8000
窗口nfft:1024
窗口周期:10毫秒
其实,我不知道这段代码的原意,谁都能读
我认为您没有正确格式化光谱图代码 命令如下
[S,F,T,P] = spectrogram(X,WINDOW,NOVERLAP,NFFT,Fs)
其中,X
是数据,WINDOW
是汉宁窗口,novelap
是窗口跳转,NFFT
是FFT大小,Fs
是数据的采样率。有了这个你会想要的
NFFT = 2^nextpow2(Fs*200/1000);
spectrogram(y,hanning(NFFT),Fs/50,NFFT,Fs);
所以你的汉宁窗口是200毫秒内有多少样本,这取决于你的采样率
这应该是你想要的窗口,并给你想要的光谱图,然后你可以使用任何你想要的
至于p
是否是你想要的问题。是的,这将返回功率谱。如果那是你想要的,当然