filtry know how


Know-how
Filtracja za pomocÄ… TMS320c6713
Krzysztof Grabiński
Zasada działania
Mnożymy aktualną próbkę i
Filtr
Filtr
127 jÄ… poprzedzajÄ…cych przez
odpowiednie współczynniki
filtra
x(n) z-1 z-1 z-1 z-1
b0 b1 b2 bN-1
x x x x
y(n)
+ + +
Realizacja
" Tworzymy tablice do przetrzymywania np.
128 próbek: short L_in[128];
" Tworzymy tablice wcześniej wyliczonych
współczynników filtra o tym samym
wymiarze
" Tworzymy funkcjÄ™ filtracji
" Konfigurujemy kodek Audio
" Odpalamy aplikacje i podziwiamy efekt
naszej pracy Jð
Współczynniki filtra
Wyliczamy za pomocÄ… Matlaba wykorzystujÄ…c skrypt od TI.
Podajemy następujące parametry:
A w efekcie otrzymamy tablice współczynników filtra
o zadanych parametrach:
TÅ‚umienie filtra 8kHz
Funkcja filtracji
short FILTR_L (short input, short *h)
{
int i;
short output;
int acc=0;
int prod;
L_in[0] = input; /* ODŚWIEŻA NAJNOWSZA PRÓBK */
acc = 0; /* ZERUJE AKUMULATOR */
for (i=0; i<128; i++) /* PETLA WYKONA SIE 128 RAZY */
{
prod = (h[i]*L_in[i]); /* MNOŻENIE Q.15 */
acc = acc + prod; /* ODŚWIEŻANIE 32-bit AKUMULATORA */
}
output = (short) (acc>>15); /* PRZERABIANIE WYJSCIA DO WARTOSCI
16-bits. */
for (i=127; i>0; i--) /* PRZESUNICIE PRÓBEK */
L_in[i]=L_in[i-1];
return output; /* ZWRACA PRZEFILTROWANA
PRÓBK */
}
Konfiguracja kodeka Audio
DSK6713_AIC23_Config config = {
0x0017, // 0 DSK6713_AIC23_LEFTINVOL Glosnosc wejscia lewego kanalu
0x0017, // 1 DSK6713_AIC23_RIGHTINVOL Glosnosc wejscia prawego kanalu
0x01f9, // 2 DSK6713_AIC23_LEFTHPVOL Glosnosc lewego kanalu sluchawekF
0x01f9, // 3 DSK6713_AIC23_RIGHTHPVOL Glosnosc prawego kanalu sluchawek
0x0011, // 4 DSK6713_AIC23_ANAPATH kontrola analogowej sciezki audio
0x0000, // 5 DSK6713_AIC23_DIGPATH kontrola cyfrowej sciezki audio
0x0000, // 6 DSK6713_AIC23_POWERDOWN kontrola włączonych urządzeń
0x0043, // 7 DSK6713_AIC23_DIGIF format interfejsu cyfrowego dzwieku
0x0081, // 8 DSK6713_AIC23_SAMPLERATE kontrola czestotliwosci probkowania
0x0001 // 9 DSK6713_AIC23_DIGACT aktywacja cyfrowego interfejsu
};
Biblioteki
#include "C6713_DSK_FIRcfg.h"
#define CHIP_6713 1
/* Biblioteki płytki DSK6713 i kodeka audio*/
#include "dsk6713.h"
#include "dsk6713_aic23.h"
VOID MAIN
void main()
{
DSK6713_AIC23_CodecHandle hCodec;
Int16 OUT_L,OUT_R;
Uint32 IN_L,IN_R;
/* INICJALIZACJA BIBLIOTEK */
DSK6713_init();
DSK6713_LED_init();
DSK6713_DIP_init();
/* WACZENIE KODEKA Z USTAWIENIAMI config */
hCodec = DSK6713_AIC23_openCodec(0, &config);
// USTAWIA CZSTOTLIWOŚĆ KODEKA NA 48KHz
DSK6713_AIC23_setFreq(hCodec, DSK6713_AIC23_FREQ_48KHZ );
Pętla główna
while (1) //PTLA NIESKOCCZONA
{
// CZYTAJ PRÓBK Z LEWEGO KANAAU
while (!DSK6713_AIC23_read(hCodec, &IN_L));
// CZYTAJ PRÓBK Z PRAWEGO KANAAU
while (!DSK6713_AIC23_read(hCodec, &IN_R));
OUT_L = FILTR_L(IN_L, h2); //FILTRÓJ LEW PRÓBK FILTREM h2
OUT_R = IN_R; //PRZEKAŻ PRÓBK PRAW BEZ FILTROWANIA
/* WYŚLIJ PRÓBK DO LEWEGO KANAAU */
while (!DSK6713_AIC23_write(hCodec, OUT_L));
/* WYŚLIJ PRÓBK DO PRAWEGO KANAAU */
while (!DSK6713_AIC23_write(hCodec, OUT_R));
}
HaPPy EnD
/* WYACZ KODEK */
DSK6713_AIC23_closeCodec(hCodec);
}


Wyszukiwarka

Podobne podstrony:
2001 01 Know How Commandline Control of Babelfish Translation Service
NBox know how v5 2 FINAL
e lerning know how 5 proj
Podstawy miks i master (Know How)
Would you like to know how you can play two of the world s
2001 01 Know How Berlin, Alternative to X Window System
Deepak Chopra How to know God
04 How The Heart Approaches What It Yearns
E Book Art Anime How To Draw Iria
Umilta, M A & Other I Know What You Are Doing

więcej podobnych podstron