Reply by Richard Owlett November 2, 20032003-11-02
Rune Allnor wrote:
> Richard Owlett <rowlett@atlascomm.net> wrote in message news:<vqa9fobci8a3f2@corp.supernews.com>... > >>I've installed Scilab, I act on advice eventually ;} >>My goal is to get a feel for what speech "looks like" ; personal education >>[ If successful I may rediscover fire and reinvent a few wheels. ] > > > Personally, I "rediscovered fire" when I was four years old. Somebody > had left a box of mathces by the fireplace, and I had to check if the > mathces worked. They did. I was lucky enough to get away with only a > blister on my finger, but the carpet got some burns. > > >>What I want to do is plot many of these on same plot by offsetting >>into my data file. >>What I want as output would be a "surface" plotted (x,y,z would be >>frequency, amplitude, time) >> >>I see how to get a matrix representing the points I wish to plot by >>changing v=x(1:points); to v=x(1stpoint:lastpoint) internal to an >>appropriate loop. >> >>How to plot it ? >>Thank you. > > > I'm not sure if your question concerns getting scilab to do what > you want (in which cas I can't help) or if you want input on good > ways of visualizing these kinds of data. I take a chance on the latter. >
The former. At least I'm reinenting a useful wheel;) You described what I was trying to accomplish.
Reply by Rune Allnor November 2, 20032003-11-02
Richard Owlett <rowlett@atlascomm.net> wrote in message news:<vqa9fobci8a3f2@corp.supernews.com>...
> I've installed Scilab, I act on advice eventually ;} > My goal is to get a feel for what speech "looks like" ; personal education > [ If successful I may rediscover fire and reinvent a few wheels. ]
Personally, I "rediscovered fire" when I was four years old. Somebody had left a box of mathces by the fireplace, and I had to check if the mathces worked. They did. I was lucky enough to get away with only a blister on my finger, but the carpet got some burns.
> What I want to do is plot many of these on same plot by offsetting > into my data file. > What I want as output would be a "surface" plotted (x,y,z would be > frequency, amplitude, time) > > I see how to get a matrix representing the points I wish to plot by > changing v=x(1:points); to v=x(1stpoint:lastpoint) internal to an > appropriate loop. > > How to plot it ? > Thank you.
I'm not sure if your question concerns getting scilab to do what you want (in which cas I can't help) or if you want input on good ways of visualizing these kinds of data. I take a chance on the latter. One way of plotting would be a spectrogram. Now, I don't know scilab so I don't know the appropriate syntax, and I can only assume scilab has some kind of built-in capacity to plot a matrix as an image. I would try to plot a spectrogram of the data according tho this pseudocode: - Determine the number N of "frames" of length M in the data (what you call v above). Allocate space for a matrix SpecGram of size M x N. These frames may or may not overlap. - Then compute the spectrogram as for n=1:N SpecGram(n,:)=fft(x(firstpoint:lastpoint))^2; end - Plot the spectrogram as an image: image(SpecGram) Rune
Reply by Richard Owlett November 2, 20032003-11-02
I've installed Scilab, I act on advice eventually ;}
My goal is to get a feel for what speech "looks like" ; personal education
[ If successful I may rediscover fire and reinvent a few wheels. ]

I have a large speech file [ from CD of some one reading ].
I have experimented enough to plot a "power" spectra of a segment of 
the recording.
{stacksize chosen to load input file with room to spare, I've run out 
stack on some of my experiments and this seems to be enough;)

      stacksize(15256000);
      [x,y]=loadwave('C:\ATEST\01mono.wav');
      points=25000 ;
      rate=  44100 ;
      fmax=6000;
      fmin=100;

      v=x(1:points);
      f=abs(fft(v,1));
      i=fmin/rate*points:fmax/rate*points;
      fr=i/points*rate;
      plot2d(fr',f(i)'**2);

What I want to do is plot many of these on same plot by offsetting 
into my data file.
What I want as output would be a "surface" plotted (x,y,z would be 
frequency, amplitude, time)

I see how to get a matrix representing the points I wish to plot by
changing   v=x(1:points); to v=x(1stpoint:lastpoint) internal to an 
appropriate loop.

How to plot it ?
Thank you.