Why is this matlab function causing trouble in the r2013a version?

Hi,
I just purchased the matlab r2013a software version. The code below was running without error in the previous version I had (r2011a). But when I run it in the r2013a version I get an error message.
Please help.
function VowelFormants = FormantsExtraction (Vowel, fs)
[Vowel fs]=wavread('SymphonyVowel.wav');
n = round(fs/1000) + 2;
w = hamming(length(Vowel));
Vowel = Vowel.*w;
th = ar(Vowel,n); % auto-regressive model of voice
[b,a] = tfdata(th); % transfer function of vocal tract
[h,w] = freqz(b,a);
end
ERROR MESSAGE: Undefined function 'mrdivide' for input arguments of type 'cell'.
Error in freqz (line 101) [h,w,options] = firfreqz(b/a,options);
Error in FormantsExtraction (line 8) [h,w] = freqz(b,a); % frequency response of vocal tract
How can I fix this problem? Your help is much appreciated. Thank you.

10 件のコメント

Walter Roberson
Walter Roberson 2013 年 4 月 4 日
tfdata() is from the Control Systems toolbox, which does not have a freqz(). Are you trying to use freqz() from the Signal Processing Toolbox or from the DSP Toolbox ?
MatlabFan
MatlabFan 2013 年 4 月 4 日
編集済み: Walter Roberson 2013 年 4 月 4 日
Thanks for commenting Walter.
I have
  • matlab & simulink r2013a
  • system identification toolbox
  • database toolbox
So, I think I am trying to use it from the DSP System toolbox.
Walter Roberson
Walter Roberson 2013 年 4 月 4 日
Are you sure? hamming() is from the Signal Processing Toolbox, unless you are using an implementation from the File Exchange.
MatlabFan
MatlabFan 2013 年 4 月 4 日
Since you said it, it is from the Signal Processing Toolbox. what are my options then?
Walter Roberson
Walter Roberson 2013 年 4 月 4 日
Please show the output of
which ar(0)
and of
which -all ar
which -all tfdata
This will help me trace which routines are being called.
Notes to myself:
MatlabFan
MatlabFan 2013 年 4 月 4 日
- for which ar(0) the output is: C:\Program Files (x86)\MATLAB\R2013a Student\toolbox\ident\ident\ar.m
- for which -all ar the output is: C:\Program Files (x86)\MATLAB\R2013a Student\toolbox\ident\ident\ar.m
- for which -all tfdata the output is: C:\Program Files (x86)\MATLAB\R2013a Student\toolbox\shared\controllib\engine\@DynamicSystem\tfdata.m % DynamicSystem method
Walter Roberson
Walter Roberson 2013 年 4 月 4 日
At the moment I do not understand why the ar() call did not fail, as you are not passing ar an iddata object as the documentation indicates it requires. The examples I find would have required that you used
Vowel = iddata(Vowel);
before the ar() call.
Without that iddata() call, I cannot predict what the output data type is from ar().
MatlabFan
MatlabFan 2013 年 4 月 4 日
編集済み: MatlabFan 2013 年 4 月 4 日
Sir, the error message is the same even after I implemented
Vowel = iddata(Vowel);
before the ar() call. The problem is definitely with the freqz() function.
Any more recommendations? Actually I hope you do have something for me.
Walter Roberson
Walter Roberson 2013 年 4 月 4 日
I will be eating my meal now; I will continue my research later.
MatlabFan
MatlabFan 2013 年 4 月 4 日
Thank you. I appreciate your time.

サインインしてコメントする。

回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeSimulink についてさらに検索

質問済み:

2013 年 4 月 3 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by