Error "undefined function or variable 'y1' ". Help me please. :\
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Poison
am 18 Okt. 2014
Kommentiert: Image Analyst
am 28 Okt. 2014
if true
% code
end--------------------------------start of the code
clc;
clear all;
Fs=8000;
for k=1:30
clear y1 y2 y3;
display('record voice');
pause();
x=wavrecord(Fs,Fs);
t=0.04;
j=1;
for i=1:8000
if(abs(x(i))>t)
y1(j)=x(i);
j=j+1;
end
end
y2=y1/(max(abs(y1)));
y3=[y2,zeros(1,3120-length(y2))];
y=filter([1 -0.9],1,y3');%high pass filter to boost the high frequency components
%%frame blocking
blocklen=240;%30ms block
overlap=80;
block(1,:)=y(1:240);
for i=1:18
block(i+1,:)=y(i*160:(i*160+blocklen-1));
end
w=hamming(blocklen);
for i=1:19
a=xcorr((block(i,:).*w'),12);%finding auto correlation from lag -12 to 12
for j=1:12
auto(j,:)=fliplr(a(j+1:j+12));%forming autocorrelation matrix from lag 0 to 11
end
z=fliplr(a(1:12));%forming a column matrix of autocorrelations for lags 1 to 12
alpha=pinv(auto)*z';
lpc(:,i)=alpha;
end
wavplay(x,Fs);
X(k,:)=reshape(lpc,1,228);
Y(k,:)=input('enter the number ');
end
save('lpcdata.mat','X','Y');
---------------------------------------the command
record voice
??? Undefined function or variable 'y1'.
Error in ==> normalizedlpc at 17
y2=y1/(max(abs(y1)));
0 Kommentare
Akzeptierte Antwort
Image Analyst
am 18 Okt. 2014
This
j=1;
for i=1:8000
if(abs(x(i))>t)
y1(j)=x(i);
j=j+1;
end
end
can be vectorized:
y1 = zeros(1, length(x); % Initialize to all zeros.
% Compute logical indexes of where x > t
aboveThreshold = x > t;
if sum(aboveThreshold) > 1
% At least one element of x is above the threshold.
% Extract only those above threshold and create a new y1
% which may be a different length than the initialized one.
y1 = x(aboveThreshold);
end
but you still might want to find out why no x is above your t threshold, because though my code fixed your code, it will just continue on with a y of all zeros, which is probably useless and not what you want.
7 Kommentare
Image Analyst
am 28 Okt. 2014
It's not a Microsoft Access Table. See http://www.mathworks.com/matlabcentral/answers/103000-why-have-all-my-mat-files-become-associated-with-microsoft-access
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Transmitters and Receivers finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!