Curs 8

14
Cap.7. Funcţii Labview pentru prelucrarea sunetelor 7.1. Noţiuni despre placa de sunet O placă de sunet/ placă audio (sound card/audio card) este o componentă a calculatorului condusă de programe, permiţând manipularea semnalelor audio şi intrări/ieşiri de semnale audio. Placa audio poate fi integrată în placa de bază sau poate fi o extindere conectată prin PCI, ISA, USB, PCMCIA, PCExpress etc. PS are conectori/ porturi: 1. „line in” pentru semnal provenit de la casetofon (cassette tape recorder). Semnalul este digitizat şi memorat pe Hdisk şi eventual procesat ulterior. 2. intrare pentru microfon extern printr-un microphone jack folosit pentru înregistrare mesaj sonor şi eventual recunoaşterea vorbirii. 3. ieşire pentru căşti (headphone jack) pentru ascultare de MP3s, DVDs sau alte fişiere audio în mod privat. Calitatea difuzoarelor este dată prin Frequency response, Total Harmonic Distortion and Watts. 4. conector pentru interfaţa MIDI /digital Musical Instrument Digital Interface este standard pentru reprezentare şi transmitere de sunete digitale. PS poate manipula fişiere .wav, .mp3 şi .cda sau alte formate. PS are drivere şi soft propriu. PS conţine un convertor ADC care converteşte semnal din format digital în format analogic pentru alimentarea unui amplificator, căşti etc. prin intermediul unui conector TRS sau RCA. 7.2. Funcţii pentru achiziţie de sunet Paleta “Sound” conţine funcţii pentru gestionarea plăcii de sunet.

description

8

Transcript of Curs 8

Page 1: Curs 8

Cap.7. Funcţii Labview pentru prelucrarea sunetelor

7.1. Noţiuni despre placa de sunet

O placă de sunet/ placă audio (sound card/audio card) este o componentă a calculatorului condusă de programe, permiţând manipularea semnalelor audio şi intrări/ieşiri de semnale audio. Placa audio poate fi integrată în placa de bază sau poate fi o extindere conectată prin PCI, ISA, USB, PCMCIA, PCExpress etc.

PS are conectori/ porturi:1. „line in” pentru semnal provenit de la casetofon (cassette tape recorder). Semnalul este digitizat şi memorat pe Hdisk şi eventual procesat ulterior.2. intrare pentru microfon extern printr-un microphone jack folosit pentru înregistrare mesaj sonor şi eventual recunoaşterea vorbirii.3. ieşire pentru căşti (headphone jack) pentru ascultare de MP3s, DVDs sau alte fişiere audio în mod privat. Calitatea difuzoarelor este dată prin Frequency response, Total Harmonic Distortion and Watts.4. conector pentru interfaţa MIDI /digital Musical Instrument Digital Interface este standard pentru reprezentare şi transmitere de sunete digitale.PS poate manipula fişiere .wav, .mp3 și .cda sau alte formate. PS are drivere şi soft propriu.PS conţine un convertor ADC care converteşte semnal din format digital în format analogic pentru alimentarea unui amplificator, căşti etc. prin intermediul unui conector TRS sau RCA.

7.2. Funcţii pentru achiziţie de sunetPaleta “Sound” conţine funcţii pentru

gestionarea plăcii de sunet.

7.2.1. Lanţul de funcţii de bază pentru achiziţie de sunet:SI Config.vi : pregăteşte placa de sunet pentru achiziţie, alocă buffer RAM de memorie, format sunet (calitatea mono/stereo, rata eşantionare, bits necesari pentru memorarea unui eşantion).SI Start.vi: comandă placa de sunet să înceapă achiziţia în bufferul de memorie alocat.SI Read.vi: transferă datele din buffer în memoria calculatorului. Dacă placa de sunet este configurată să genereze date bi-aural (stereo) pe 8 biţi se foloseşte indicatorul stereo 8-bit (pe celelalte nu generează nimic); simular pentru cazurile:*mono-aural pe 8 biţi,*mono-aural pe 16 biţi,

Page 2: Curs 8

*bi-aural (stereo) pe 16 biţi. SI Clear.vi: eliberează memoria de sarcina de achiziţie.

Snd Read Waveform.vi : citeşte date de la intrare (microfon )

7.2.2. Aplicaţie1: Acquire Sound Data and Calculate Power Spectrum.vi: achiziţie continuă de sunet cu afişare sunet în timp şi puterea în frecvenţă.Obs.:

1.ciclare while cu oprise prin buton Stop şi /sau eroare pe câmpul “status” (unbandle by name)2. configurare placă de sunet mono-aural, 8bit şi 11025 eşantioane pe secundă.3. conectare indicator mono-8bit a funcţiei SI Read.vi4. Conversie de la tipul intreg pe 8 biti la real dublă precizie5. Calcul putere spectrală a semnalului cu observare a tonalităţilor înalte, joase, etc6. buffer size, device=placa de sunet, compound logic SAU+NOT, temporizare etc.

Page 3: Curs 8

7.3. Funcţia Snd Play Wave File.vi trimite un fişier .wav salvat pe disc la placa de sunet (boxe).

7.4. Funcţii pentru generare sunet prin Placa de sunet şi difuzoare

SO Config.viSO Write.viSO Start.viSO Wait.viSO Clear.vo

7.5. Funcţia Snd Write Waveform.viTrimite date la placa de sunet, un waveform de format specificat prin “sound format” şi

aşteaptă terminarea mesajului.

7.6. Snd Read Wave File.viCiteşte un fişier .wav specificat prin calea la fişier. Returnează date de tip waveform/tablou şi formatul sunetului (necesar pentru configurarea plăcii sunet pentru redarea formei de undă).

*Aplicaţie21. Citire fişier chirp.wave şi afişare(indicator) “mono 16bit” şi “format sound”2. Snd Write Waveform = trimitere la difuzor/audiţie a fişierului chirp.wav3. Snd Write WAVE File.vi -salvare din format mono16bit +sound format în fişierul chirp2.wav

Page 4: Curs 8

*Aplicaţie3

Funcţia Acquire Sound Data and Calculate Power Spectrum.vi, Versiunea II: configurează placa de sunet şi achiziţionează repetat date de tip sunet +calculează puterea spectrală.

Aplicaţie4, Simularea cu Telephone.vi : calculeaza o pereche de tonuri (inalt, jos) pentru tasta apasată şi generează un sunet corespunzător pentru validare şi recunoaşterea sonoră a tastei.- aplicaţia este în buclă while până la apăsarea butonului de “stop”.- La fiecare iteraţie registrul de transfer este iniţializat cu tabloul logic 3x4 False,

Page 5: Curs 8

- Search 1D Array identifică numărul de ordine a tastei apăsate în matricea booleană- Împărţirea cu rest determină linia şi coloana tastei apăsate- Index Array.vi extrage frecvenţa din constanta sir frecvenţe înalte şi altă frecvenţă din sir frecvenţe joase care vor genera un ton în funcţia “tone wave gen.”

- Snd Write Waveform.vi generează sunetul specific tastei, la difuzor.- Slide-ul volume modifică amplitudinea sinusoidelor.

PCI - Peripheral Component Interconnect PCI Express - (Peripheral Component Interconnect Express)PCMCIA - Personal Computer Memory Card International Association(concepută initial pentru laptop-uri).USB - Universal Serial BusISA - Industry Standard Architecture este o magistrală de date ce a fost inventată de IBM odată cu primul IBM PC

Page 6: Curs 8

Cap.8. Comunicații Internet în LabVIEW

Diversele versiuni succesive ale mediului de programare grafică LabVIEW și-au adus fiecare contribuția la oferirea de noi facilități pentru dezvoltarea de aplicații distribuite. Funcțiile TCP/IP, Remote Data Acquisition, Internet Toolkit, VI Server, Front Panel Web Publishing, Data Socket ș.a.m.d., sunt unelte prezentând facilități unice, permițând dezvoltarea de aplicații din ce în ce mai performante cu un efort de programare specific din ce în ce mai redus.

Comunicații UDP în LabVIEWProtocolul UDP (User Datagram Protocol) este un mijloc de transmitere a unor pachete

de date fără importanță critică, de dimensiuni reduse (circa 65 kb), către unul sau mai mulți destinatari. Spre deosebire de TCP, protocolul UDP nu garantează ajungerea datelor la destinație și nici faptul că diversele pachete vor ajunge în ordinea în care au fost trimise.

Neavând facilități de control a comunicației, transmiterea sau recepția datelor prin protocolul UDP nu necesită specificarea explicită a celuilalt “capăt” al conexiunii. Un client trebuie doar să asculte pe portul UDP specificat și el va primi orice pachet de date transmise către acel port al său.

Pentru ca un server să trimită un pachet de date prin acest protocol, este suficient să se deschidă o conexiune pe un port UDP, să se acceseze funcția UDP Write, specificând adresa IP a destinatarului, portul UDP al acestuia și datele ce vor fi trimise, apoi să se închidă eventual conexiunea respectivă.

Cum majoritatea router-elor recunosc adrese IP în care un octet cu valoarea 255 are semnificația de “trimite tuturor din domeniul respectiv”, se pot utiliza adrese de genul 36.122.32.255. Încercarea de a trimite la adresa 255.255.255.255 către “tot Internet-ul” se va solda cu trimiterea pachetului de date doar în subrețea, deoarece subrețelele evită să transmită date la adrese din exteriorul lor.

Pentru a citi datele ce au fost trimise către un port al său, după deschiderea unei conexiuni pe acel port, un client trebuie să acceseze funcția UDP Read, aceasta oferindu-i și informațiile referitoare la adresa IP și portul server-ului de la care pachetul de date a fost transmis.

Page 7: Curs 8

Funcții LabVIEW pentru comunicații TCP/IPNumele TCP/IP provine din alăturarea inițialelor a două dintre cele mai cunoscute

protocoluri de comunicație în rețea: Transmission Control Protocol și Internet Protocol.În principiu, un proces de comunicație prin TCP/IP implică deschiderea unei conexiuni,

citirea și/sau scrierea de informații, apoi închiderea conexiunii, mediul de programare grafică LabVIEW dispunând de funcții dedicate acestor etape de bază.

Deoarece orice aplicație poate deschide o conexiune către un server, este evident că acesta din urmă trebuie să dispună de posibilități de control al accesului. LabVIEW pune în acest scop la dispoziția programatorului funcția TCP Create Listener pentru a inițializa un identificator al aplicațiilor client ce vor accesa un anumit port al serverului.

Odată identificatorul inițializat, funcția TCP Wait On Listener va oferi informații referitoare la adresa IP și la portul prin care, la un moment dat, o aplicație a deschis o conexiune TCP/IP, aplicația server urmând a se comporta în continuare în funcție de aceste informații.

În majoritatea cazurilor, programatorul în LabVIEW trebuie să dezvolte atât aplicația server cât și aplicația client prin intermediul cărora sunt transmise date rezultate din măsurări și monitorizări de procese. Este evident că este de asemenea în sarcina programatorului stabilirea unui protocol specific între cele două aplicații, protocol ce poate include comenzi dedicate pentru comanda achiziției de date, configurarea acesteia, transmiterea informațiilor despre proces ș.a.m.d.

Comunicații în LabVIEW prin tehnologia DataSocketDataSocket reprezintă o tehnologie de programare Internet ce simplifică schimbul de

date între computere și aplicații. Transferul datelor prin Internet cu DataSocket se realizează eficient, răspunzându-se mai multor utilizatori fără a apela la complexitatea programării TCP de nivel scăzut. Transferul datelor se realizează la fel de simplu ca în cazul citirii sau scrierii datelor în fișiere.

Tehnologia DataSocket este încorporată în majoritatea celor mai populare unelte software de dezvoltare a aplicațiilor pentru măsurare și automatizare: Visual C++, Visual Basic, LabWindows/CVI și LabVIEW. Fiind dezvoltată pe baza tehnologiilor standard în industrie TCP/IP și ActiveX/COM, se estimează că adoptarea DataSocket va continua să fie relativ rapidă.

Page 8: Curs 8

Fiind optimizată pentru distribuția rapidă a datelor, tehnologia DataSocket reduce în același timp substanțial timpul necesar dezvoltării aplicațiilor în care informația este transferată prin Internet.

DataSocket poate fi ușor încorporată în aplicații deja existente. Tehnologia constă dintr-un server DataSocket rezident pe un computer cu sistem de operare Windows din cadrul rețelei și o DataSocket API utilizată pentru transmiterea sau recepția datelor prin rețea.

Odată serverul DataSocket pornit, o aplicație LabVIEW poate fi configurată în două moduri pentru a transmite date: programatic, utilizând funcția DataSocket Write

configurând conexiunea DataSocket a unui element de pe panoul frontal (opțiunea Data Operations / DataSocket Connection din meniul propriu al acestuia)

Citirea de date prin tehnologia DataSocket poate fi efectuată, în interiorul unei aplicații LabVIEW, de asemenea în două moduri: programatic, cu utilizarea funcției DataSocket Read

Page 9: Curs 8

configurând conexiunea DataSocket a unui element de pe panoul frontal

Remote Panels în LabVIEW – Dezvoltarea de aplicații distribuiteFacilitatea esențială pe care LabVIEW o aduce prin unealta Remote Panels este aceea

că un panou frontal poate fi accesat pe un computer separat de cel pe care instrumentul virtual este rezidentă și executat.

Panoul frontal respectiv poate fi inclus într-o pagină Web și operat din aceasta, computerul client necesitând pentru acest fapt doar un browser, pachetul LabVIEW Run-Time Engine și un plug-in pentru browser-ul respectiv.

Pentru a pune în practică această facilitate, sunt necesare două etape principale: activarea LabVIEW Web Server pe computerul server; conectarea de pe computerul client și operarea panoului frontal, fie din mediul LabVIEW fie dintr-un browser.

Configurarea LabVIEW Web Server se compune la rândul său din trei etape: configurarea folderelor de fișiere și a rețelei (Tools / Options / Web Server: Configuration)

configurarea drepturilor de acces ale clienților (Tools / Options / Web Server: Browser Access)

Page 10: Curs 8

declararea instrumentelor virtuale vizibile (Tools / Options / Visible VIs)

Cele trei etape de configurare LabVIEW Web Server enumerate mai sus pot fi abordate de asemenea programatic.

După efectuarea celor trei etape, utilizând opțiunea Tools / Web Publishing Tool, se va crea un fișier HTML, specificînd numele instrumentului virtual al cărui panou va apare în pagina Web respectivă, titlul paginii și textul conținut de aceasta. Fișierul HTML respectiv, ce poate fi creat și prin alte metode, trebuie salvat în folder-ul ce a fost declarat drept Root Directory în prima etapă de configurare a LabVIEW Web Server.

Un instrument virtual ce a fost declarat vizibil poate fi accesat de pe un alt computer, prin apelarea opțiunii Operate / Connect to Remote Panel.

Page 11: Curs 8

Apelând pe computerul server opțiunea Tools / Remote Panels Connection Manager, se pot obține informații despre accesările VI-urilor vizibile și se pot controla conexiunile existente.

Operarea unui panou frontal dintr-un browser, după instalarea LabVIEW Run-Time Engine și a plug-inului pentru browser, nu necesită decât încărcarea în browser a paginii Web ce a fost creată după configurarea LabVIEW Web Server.

Atunci când imaginea panoului frontal este încărcată în pagina Web, deschiderea meniului propriu al panoului (prin apăsarea butonului din dreapta al mouse-ului) și selectarea opțiunii Request Control of VI va permite accesul utilizatorului la elementele de control și indicatoare ale panoului frontal.