Matlab中一段绘制语谱图的程序无法通过,求解

来源:百度知道 编辑:UC知道 时间:2024/06/17 05:33:28
这是我网上看到的一段音信信号处理中绘制语谱图的程序
function sogram(Winsiz,Shift,Base,Mode,Gray);
[Sg,Fs]=wavread(Wavnam);n=floor((length(Sg)-Winsiz)/Shift)+1;A=zeros(Winsiz/2+1,
for i=1:n n1=(i-1)*Shift+1;n2=n1+(Winsiz-1);s=Sg(n1:n2);s=s.*hanning(Winsiz);
z=fft(s);z=z(1:(Winsiz/2)+1);z=z.*conj(z);z=10*log10(z);A(:,i)=z; end
L0=(A>Base);L1=(A<Base);B=A.*L0+Base*L1;L=(B-Base)./(max(max(B))-Base);
y=[0:Winsiz/2]*Fs/Winsiz;x=[0:n-1]*Shift; if Mode==1 colormap(‘default’); else
mymode=gray;mymode=mymode(Gray:-1:1,:);colormap(mymode);
设置Winsiz=256,Shift=32,Base=0,Mode=0,Gray=64
Wavnam=‘beifeng.wav‘
程序提示错误:??? Error: File: F:\Matlab7.0\work\sogram.m Line: 1 Column: 17
Missing MATLAB operator.
补充#1 2009-11-30 8:11:00 Wavnam:定义待分析信号的路径及文件名。语音信号由计算机声卡录制,以.wav格式存储。
程序中 wavread(Wavnam)读入的语音信号样值赋给矩阵 Sg,也即待分析信号 x(n),采样频率赋给 Fs。
Winsiz:定义帧长,一般应取 2 的幂次,其目的是适合 FFT 的要求。通过对 Winsiz 的选值可实现宽带频谱或窄带频谱的选择。
Shift:定义帧移值。一般此值小于或等于 Winsiz。S

错误提示很明显,第1行,17列缺少操作符,你贴上来格式完全变样,而且还有好多其它错误,比如:A=zeros(Winsiz/2+1, 关键的地方缺失了,没法帮你调试。你可以按提示自已去查错。