[b,f,t]=specgram(data,nfft,Fs,window,numoverlap);
imagesc(t,f,20*log10(abs(b))), axis xy, colormap(jet); % 画时频图
其中:
% nfft是fft的长度,越长的话,频域分辨率越高,但是,对于语音这种时变信号,不能过长,一般采样率16k或者8k的取1024或者512,要看采样率的高低。
% fs就是采样率,不多说了。
% window是指窗的长度,一般和nfft相同即可。
% numoverlap是指nfft减去步长,越大越好,但运算量越大。一般取nfft的3/4效果就比较好了。
% 举例:
% b= specgram(a,512,8000,512,384);
% b是一个矩阵,复数的,画图的时候需要取绝对值!
C#与MATLAB之间传递参数
MWNumericArray是MWArray和c#中数据的中间类,怎么用?怎样在C参数?
a.double型、int型等数值类型的变量传递
MWNumericArray i = null, result = mydouble;
i=4;
myClass myclass = new myClass(); //实例化
result = (MWNumericArray)myclass.myfunc(i);
b.字符串(需要用到MWCharArray和MWArray转换)