Transmitting speech signals!

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Hi ,

   

 I am working on digitising our speech signals and transmitting these digital samples using UART to PC and collecting in PC using hyperterminal.

   

 

   

Problem is am losing many samples. For 16000BPS sampling rate, i collect only 1600 samples per second. 

   

I have not used a DMA or ISR ,which i suppose, to be an efficient way?

   

If so could somebody help me with adding the ISR or/and DMA to the present workspace including the C-code?

   

 

   

If not, is there any other efficient way?

   

 

   

I have attached my workspace.

   

 

   

Thanks in advance

0 Likes
14 Replies
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

Attachment missing.

   

 

   

Regards, Dana.

0 Likes
Anonymous
Not applicable

 Sorry for that. pls find the attached file.

0 Likes
Anonymous
Not applicable

Attachment missing again.

0 Likes
Anonymous
Not applicable

 am choosing the file and clicking post..but the file isnt getting uploaded..is there any other way?

0 Likes
Anonymous
Not applicable

 Please clear me with this doubt.

   

1.If my adc sampling rate is 16000sps and 8 bit resolution. Will i be able to collect 1,60,000 samples if i speak for 10seconds?

   

Or will there be any loss during conversion time etc?

0 Likes
Anonymous
Not applicable

 Or does it depend on the variation of input siignal ?

   

 

   

Also i am collecting my digital samples using Hyperterminal i.e in ASCII form. Is there any software to check/plot if the received samples are in accordance with the input signal? or we need to convert this ascii to binary form?

   

 

   

Thanks a lot in advance !

0 Likes
Anonymous
Not applicable

I'd advise you to go through the video,appnote and code linked here:

   

AN61102 - PSoC® 3 and PSoC 5 - ADC Data Buffering Using DMA

   

http://www.cypress.com/?rID=44335

   

 

   

Go through those materials patiently,it will solve your problem.

   

PSoC Rocks,

   

 

   

Regards,

   

kmmankad

0 Likes
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

Here is an application that will graph from UART, or Ethernet or USB, free

   

for non-commercial uses.

   

 

   

http://www.selmaware.com/stampplot/index.htm

   

 

   

Regards, Dana.

0 Likes
Anonymous
Not applicable

 Thanks all for sharing !

0 Likes
HeLi_263931
Level 8
Level 8
100 solutions authored 50 solutions authored 25 solutions authored

I don't think you can store 160.000 samples. Even if one sample is only one byte, it would take nearly trice the amount of available memory. So you should create 2 or three pages of, lets say, 4k, and capture into them in a round-robin fashion. The AppNote AN52705 contains an example for this, called 'ping-pong-buffer'). Then you can transfer each page to the PC after it has been finished, while the other one gets filled again.

   

To send 16.000 samples per second to the PC, you will need a transfer rate of at least 160.000 bits per second (the overhead for the serial port transmits at least 10 bits per byte). It might be better to use the USB-port for that (it can emulate a serial port on the PC side), and to bulk transfer over it.

0 Likes
Anonymous
Not applicable

 Ok Hli, i just checked your post. Will do that !

   

 

   

Also am using Psoc5 -050 for this kit and psoc creator 2.0 . I see few posts in this forum that says we need an external crystal for using communication devices like USB or UART. Could someone please throw some light on it?

0 Likes
HeLi_263931
Level 8
Level 8
100 solutions authored 50 solutions authored 25 solutions authored

Yes, starting with Creator 2.0 you need a crystal for using USB. The reason is that the frequency of the internal oscillator is not accurate enough for USB. If you have a -050 kit with production silicon, the crystal should be already there (check near the PSoC, there should be a 24MHz crystal). If you have a kit with -ES1 silicon, you need to solder a crystal. For specific instructions, look here: http://www.cypress.com/?id=4&rID=56796 . There was a more detailed discussion in the forum here: http://www.cypress.com/?app=forum&id=2233&rID=56823 (including using other crystal frequencies, and what capacitors to choose). For myself, I used a stock 12MHz crystal and 22pF capacitors, which worked fine.

0 Likes
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

Don't forget if you are dealing with speech signals compression is a very

   

viable alternative to normal oversampling.

   

 

   

Some algorithims to consider -

   

 

   

http://193.226.6.174/IT2002/pdf/L42.pdf

   

http://www.ti.com/lit/an/slaa361/slaa361.pdf

   

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2660&param=en535126

   

http://www.amazon.com/Speech-Processing-Embedded-Systems-ebook/dp/B008BBMYRM

   

http://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2006/wc227_rks33/wc227_rks33/index...

   

 

   

Regards, Dana.

0 Likes
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

One more reference that may be useful -

   

 

   

      http://www.psocdeveloper.com/uploads/tx_piapappnote/an2095.pdf

   

 

   

Regards, Dana.

0 Likes