PRZETWARZANIE SYGNAŁÓW AUDIO W CZASIE RZECZYWISTYM Z ZASTOSOWA- NIEM TARGET SUPPORT PACKAGE TC6

Podobne dokumenty
Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej. Instrukcja do zajęć laboratoryjnych z przedmiotu:

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej. Instrukcja do zajęć laboratoryjnych z przedmiotu:

IMPLEMENTACJA I ANALIZA MODELI DETEKCJI I ŚLEDZENIA OBIEKTÓW W SEKWENCJACH WIDEO Z ZASTOSOWANIEM MODUŁU Z PROCESOREM SYGNAŁOWYM

Adam Korzeniewski - p. 732 dr inż. Grzegorz Szwoch - p. 732 dr inż.

Badanie właściwości wysokorozdzielczych przetworników analogowo-cyfrowych w systemie programowalnym FPGA. Autor: Daniel Słowik

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Parametryzacja przetworników analogowocyfrowych

IMPLEMENTATION OF THE SPECTRUM ANALYZER ON MICROCONTROLLER WITH ARM7 CORE IMPLEMENTACJA ANALIZATORA WIDMA NA MIKROKONTROLERZE Z RDZENIEM ARM7

Programowanie Układów Logicznych kod kursu: ETD6203. Szczegóły realizacji projektu indywidualnego W dr inż.

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Filtry cyfrowe procesory sygnałowe

Technika audio część 2

Procesory Sygnałowe Digital Signal Processors. Elektrotechnika II Stopień Ogólnoakademicki

PROGRAM TESTOWY LCWIN.EXE OPIS DZIAŁANIA I INSTRUKCJA UŻYTKOWNIKA

PROCESORY SYGNAŁOWE - LABORATORIUM. Ćwiczenie nr 04

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Procesory sygnałowe Digital Signal Processors. Informatyka II stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Filtry cyfrowe i procesory sygnałowe

Spis treści 1. Wstęp 2. Ćwiczenia laboratoryjne LPM

STANOWISKO LABORATORYJNE DO CYFROWEGO PRZETWARZANIA SYGNAŁÓW Z WYKORZYSTANIEM ŚROWODOWISKA MATLAB ORAZ PLATFORMY PROGRAMISTYCZNEJ.

Podstawy Przetwarzania Sygnałów

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej. Instrukcja do zajęć laboratoryjnych z przedmiotu:

GATHERING DATA SYSTEM FOR CONCRETE S SAMPLE DESTRUCTING RESEARCHES WITH USE OF LABVIEW PACKET

SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701. SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701.

Laboratorium Procesorów Sygnałowych

ZASTOSOWANIA PROCESORÓW SYGNAŁOWYCH - PROJEKT

Wydział Elektryczny. Katedra Telekomunikacji i Aparatury Elektronicznej. Konstrukcje i Technologie w Aparaturze Elektronicznej.

PROCESORY SYGNAŁOWE - LABORATORIUM. Ćwiczenie nr 03

PL B1. Sposób i układ pomiaru całkowitego współczynnika odkształcenia THD sygnałów elektrycznych w systemach zasilających

Rejestratory Sił, Naprężeń.

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Układy i Systemy Elektromedyczne

Zastowowanie transformacji Fouriera w cyfrowym przetwarzaniu sygnałów

Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny) kierunkowy (podstawowy / kierunkowy / inny HES)

POMIARY WYBRANYCH PARAMETRÓW TORU FONICZNEGO W PROCESORACH AUDIO

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

2. STRUKTURA RADIOFONICZNYCH SYGNAŁÓW CYFROWYCH

OPBOX ver USB 2.0 Miniaturowy Ultradźwiękowy system akwizycji danych ze

CYFROWE PRZETWARZANIE SYGNAŁÓW

Sprawdzian wiadomości z jednostki szkoleniowej M3.JM1.JS3 Użytkowanie kart dźwiękowych, głośników i mikrofonów

Modułowy programowalny przekaźnik czasowy firmy Aniro.

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Kurs Zaawansowany S7. Spis treści. Dzień 1

DYSKRETNA TRANSFORMACJA FOURIERA

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Przetwornik ADC procesora sygnałowego F/C240 i DAC C240 EVM

o Instalacja środowiska programistycznego (18) o Blink (18) o Zasilanie (21) o Złącza zasilania (22) o Wejścia analogowe (22) o Złącza cyfrowe (22)

Laboratorium Komputerowe Systemy Pomiarowe

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej. Instrukcja do zajęć laboratoryjnych z przedmiotu:

Politechnika Świętokrzyska. Laboratorium. Cyfrowe przetwarzanie sygnałów. Ćwiczenie 6. Transformata cosinusowa. Krótkookresowa transformata Fouriera.

ELEMENTY AUTOMATYKI PRACA W PROGRAMIE SIMULINK 2013

Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, Spis treści

Elektrotechnika II Stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej. Instrukcja do zajęć laboratoryjnych z przedmiotu:

Zaawansowane algorytmy DSP

APLIKACJA NAPISANA W ŚRODOWISKU LABVIEW SŁUŻĄCA DO WYZNACZANIA WSPÓŁCZYNNIKA UZWOJENIA MASZYNY INDUKCYJNEJ

Kompresja dźwięku w standardzie MPEG-1

Schemat blokowy karty

Wstęp Architektura... 13

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium cyfrowej techniki pomiarowej. Ćwiczenie 3

Przekształcenie Fouriera i splot

Laboratorium Komputerowe Systemy Pomiarowe

2. Code Composer Studio v4 zintegrowane środowisko projektowe... 41

Cyfrowe Przetwarzanie Obrazów i Sygnałów

Sterowniki Programowalne (SP)

Laboratorium 1. Wprowadzenie do środowiska GnuRadio. I. Wprowadzenie

Przykładowe pytania DSP 1

USB interface in 8-bit microcontrollers PIC18F family manufactured by Microchip.

Ćw. 12. Akwizycja sygnałów w komputerowych systemach pomiarowych ( NI DAQPad-6015 )

KARTA PRZEDMIOTU. Techniki przetwarzania sygnałów, D1_3

Wprowadzenie do Real-Time Windows Target Toolbox Matlab/Simulink

Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści

Przemysłowe sieci informatyczne

Materiały dodatkowe. Simulink PLC Coder

PRZEWODNIK PO PRZEDMIOCIE

PowerLab 4/35 z systemem LabChart Pro

Wykrywanie sygnałów DTMF za pomocą mikrokontrolera ATmega 328 z wykorzystaniem algorytmu Goertzela

PUKP Programowanie urządzeń kontrolno-pomiarowych. ztc.wel.wat.edu.pl

LABORATORIUM Komputery przemysłowe i systemy wbudowane

Hardware mikrokontrolera X51

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej

8. Realizacja projektowanie i pomiary filtrów IIR

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Laboratorium Przetwarzania Sygnałów Biomedycznych

Spis treści. Dzień 1. I Rozpoczęcie pracy ze sterownikiem (wersja 1707) II Bloki danych (wersja 1707) ZAAWANSOWANY TIA DLA S7-300/400

Spis treści. 1. Cyfrowy zapis i synteza dźwięku Schemat blokowy i zadania karty dźwiękowej UTK. Karty dźwiękowe. 1

Prototypowanie systemów sterowania

Cyfrowe Przetwarzanie Obrazów i Sygnałów

Materiały dodatkowe. Raspberry Pi

Filtry FIR i biblioteka DSPLIB

EFEKTYWNE PROGRAMOWANIE PROCESORA TMS320C6711 PRZY UśYCIU PAKIETU SIMULINK

Ćwiczenie 6 Projektowanie filtrów cyfrowych o skończonej i nieskończonej odpowiedzi impulsowej

PRZEWODNIK PO PRZEDMIOCIE

SPRZĘTOWA REALIZACJA FILTRÓW CYFROWYCH TYPU SOI

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

KOMPUTEROWE SYSTEMY POMIAROWE

PREZENTACJA MODULACJI AM W PROGRAMIE MATHCAD

7. Szybka transformata Fouriera fft

Spis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII

Kurs SIMATIC S7-300/400 i TIA Portal - Zaawansowany. Spis treści. Dzień 1

1. Opis aplikacji. 2. Przeprowadzanie pomiarów. 3. Tworzenie sprawozdania

Transkrypt:

Zeszyty Naukowe WSInf Vol 9, Nr 3, 2010 Radosław Weychan, Tomasz Marciniak, Adam Dąbrowski Politechnika Poznańska, Katedra Sterowania i Inżynierii Systemów Pracownia Przetwarzania Sygnałów i Układów Elektronicznych ul. Piotrowo 3a, 60-965 Poznań, Radoslaw.Weychan@put.poznan.pl PRZETWARZANIE SYGNAŁÓW AUDIO W CZASIE RZECZYWISTYM Z ZASTOSOWA- NIEM TARGET SUPPORT PACKAGE TC6 Streszczenie Artykuł przedstawia techniki przetwarzania sygnałów pasma akustycznego z wykorzystaniem modułu z procesorem sygnałowym, środowiska MATLAB/Simulink oraz biblioteki Target Support Package TC6. Pokazane modele, przygotowane dla procesora DM6437 w środowisku Matlab/Simulink, ilustrują proces implementacji algorytmów, korzystania z bibliotek oraz konfigurację bloków składowych modelu. Pokazano ułatwienia i ograniczenia przedstawionej techniki programowania. 1 Podstawowe cechy biblioteki Target Support Package TC6 Rozwój i coraz większe możliwości procesorów sygnałowych m.in. w przetwarzaniu sygnałów multimedialnych wymuszają opracowywanie nowych narzędzi ułatwiających programowanie systemów cyfrowego przetwarzania sygnałów (CPS). Nowoczesne środowiska programistyczne ułatwiają konfigurację sprzętu oraz dostęp do funkcji poprzez np. modułowość budowy. Jednym z takich środowisk jest Matlab/Simulink [1], który w połączeniu z biblioteką Target Support Package TC6 [3] pozwala na komunikację z modułem procesora sygnałowego z poziomu swojego interfejsu. Zawartość biblioteki TC6 ilustruje rys. 1. W artykule szczególną uwagę zwrócono na moduły odpowiedzialne za akwizycję sygnałów audio (DM6437 EVM Board Support), konfigurację procesora sygnałowego (C6000 Target Preferences i C6000 DSP Core Support) oraz przetwarzanie odebranych z zewnątrz sygnałów (C64x DSP Library). 5

Przetwarzanie sygnałów audio... Rys. 1. Składniki biblioteki Target Support Package TC6 3.3 Akwizycja i przetwarzanie sygnałów audio z wykorzystaniem TC6 Target Support Package TC6 zawiera najważniejsze bloki dedykowane dla przetwarzania sygnałów audio, w tym mowy. Akwizycję sygnału umożliwiają moduły ADC / DAC (DM6437 EVM Board Support), które w przypadku procesora DM6437 EVM [2] pozwalają na konfigurację zintegrowanego kodeka AIC33 [3, 11]. Zapewniają dostęp do programowania szybkości próbkowania (8 khz 96 khz) oraz do wewnętrznego bufora zawierającego ramki sygnału cyfrowego. W przypadku sygnału mowy ramki są typowo odpowiednikiem 10-20 ms sygnału ciągłego [9]. Rozdzielczość przetworników wynosi 16 bitów, stąd dane na wyjściu bloku ADC są typu INT16 [3]. Bloki ADC oraz DAC działają synchronicznie co oznacza, iż muszą mieć zadeklarowaną taką samą wartość szybkości próbkowania. Realizację algorytmów cyfrowego przetwarzania sygnałów ułatwia biblioteka C64x DSP Library. Zawiera ona dedykowane i zoptymalizowane dla rodziny procesorów C64x bloki przetwarzania sygnałów. Wykonują one podstawowe operacje na wektorach i macierzach (m.in. autokorelację, zmianę typu danych, mnożenie, segmentację) oraz operacje wymagające większych mocy obliczeniowych, jak szybka transformacja Fouriera FFT czy filtracja za pomocą filtrów typu FIR lub IIR. Ze względu 6

R. Weychan, T. Marciniak, A. Dąbrowski na budowę procesora sygnałowego uwzględniają one ograniczenia związane z typem przetwarzanych danych. Powoduje to w niektórych przypadkach konieczność zmian reprezentacji danych lub wykorzystania bloków z biblioteki Signal processing blockset [4]. 3.4 Konfiguracja procesorów rodziny C6000 Specyfika realizacji algorytmów z zastosowaniem procesorów sygnałowych wymaga konfiguracji parametrów związanych z alokacją danych w pamięci, szybkości pracy zegara, rozmiarem pamięci podręcznej typu cache oraz systemem BIOS. W przypadku procesorów z rodziny C6000 konfigurację taką umożliwia podbiblioteka C6000 Target Preferences. Umożliwia ona dostęp do ustawień mapy pamięci (zakładka Memory) oraz alokacji danych (zakładka Sections i DSP/BIOS). Przykładowe okno konfiguracyjne dla modułu DM6437 EVM prezentuje rys. 2. Rys. 2. Okno konfiguracji procesora sygnałowego Alokację zmiennych w pamięci umożliwia blok Memory Allocate z podbiblioteki C6000 DSP Core Support. Dostępne w niej są także komponenty realizujące obsługę przerwań (Hardware Interrupt), tryb pracy modułów pamięci (EDMA), ustawienia priorytetów zadań (Task oraz Idle Task) oraz kopiowanie zawartości pamięci (Memory Copy). Konfiguracja przetwarzania analogowo-cyfrowego w przypadku dźwięku, została także mocno ułatwiona. Standardowo należy wyzna- 7

Przetwarzanie sygnałów audio... czyć wartości rejestrów odpowiedzialnych za przekierowania sygnałów oraz dzielniki sygnału zegarowego w celu wyznaczenia według wzorów pożądanej szybkości próbkowania. W przypadku wykorzystania biblioteki TC6, procedura ta sprowadza się do ustawienia jedynie kilku wartości w osobnych oknach odpowiedzialnych za przetwarzania A/C oraz C/A. Konfigurowalnymi parametrami są: szybkość próbkowania (ze względu na synchroniczny sposób działania przetworników, wielkość ta musi być identyczna na wejściu oraz na wyjściu), źródło sygnału wejściowego oraz wielkość bufora odczytu. Okna te przedstawione są na rys. 3. Rys. 3. Okna konfiguracji przetwarzania A/C oraz C/A 2 Modele blokowe w środowisku SIMULINK Implementacja algorytmów cyfrowego przetwarzania sygnałów z zastosowaniem środowisk programistycznych dla procesora sygnałowego (np. Code Composer Studio [10] dla DM6437) jest żmudnym procesem wymagającym przygotowania plików z deklaracją mapy pamięci, wektorów przerwań, częstotliwości zegara taktującego i innych koniecznych do pracy parametrów. Dostęp do poszczególnych portów, w tym w szczególności do portu szeregowego wykorzystywanego przy akwizycji sygnału dźwiękowego, także musi zostać odpowiednio zaprogramowany z wykorzystaniem dzielników zegara głównego oraz rejestrów konfigurujących opcje przetwarzania. Typowo projekt składa się z kilkunastu lub kilkudziesięciu plików o niejednoznacznych typach powiązań między nimi. Proces przygotowania oprogramowania z wykorzystaniem Target Support Package TC6 upraszcza i skraca czas implementacji algorytmów. Konfiguracja procesora sprowadza się do wstawienia na formatkę schematu bloku konfiguracyjnego dla danego typu procesora, którego 8

R. Weychan, T. Marciniak, A. Dąbrowski domyślne ustawienia sprawdzają się w większości zadań. Konfiguracja dostępu do poszczególnych portów także realizowana jest z wykorzystaniem bloków. Dla celów przetwarzania wielowątkowego pożądane jest określenie systemu nadzorującego pracę poszczególnych zadań, realizowanego przez blok BSP/BIOS widoczny na rys. 4. Przejrzystość schematów blokowych jest dużo większa niż kodu języka C++, zwłaszcza w przypadku pętli oraz przekazywania parametrów między funkcjami. Tego typu sposób programowania zilustrowano przykładami w następnym rozdziale, natomiast ogólny wzór przygotowania schematu prezentowany jest na rys. 4. Blok zawierający strukturę algorytmu przetwarzania sygnału Blok konfiguracji zadań wyzwalanych jako wątki Ładowanie programu do pamięci procesora Blok konfiguracji procesora sygnałowego Rys. 4. Wzorzec projektowy tworzenia schematów blokowych w środowisku Matlab/Simulink dla procesorów sygnałowych 3 Przykłady algorytmów przetwarzania sygnału mowy z zastosowaniem TC6 3.1. Wyznaczanie częstotliwości podstawowej tonu krtaniowego Pierwszym przykładem ilustrującym sposób użycia biblioteki TC6 jest algorytm wyznaczania tonu podstawowego [7]. Działanie algorytmu polega na wyszukaniu indeksu z modułu wartości FFT o największej ampli- 9

Przetwarzanie sygnałów audio... tudzie. Częstotliwość tonu podstawowego obliczamy zgodnie ze wzorem (1). fs F = n N gdzie: F częstotliwość podstawowa tonu krtaniowego 0 fs szybkość próbkowania sygnału mowy N ilość punktów przekształcenia fft n numer prążka FFT o najwyższej amplitudzie. 0 (1) Schemat blokowy algorytmu przedstawia rys. 5. Wykorzystano w nim blok akwizycji sygnału audio (ADC), połączony z Multiport Select w celu uzyskania sygnału monofonicznego. Zmiana typów danych blokiem Data Type Conversion z reprezentacji INT16 na single jest niezbędna ze względu na wykorzystanie funkcji obliczania modułu FFT. Indeks prążka o największej amplitudzie wybierany jest w bloku Maximum, a prezentacja wyniku odbywa się przykładowo na diodach LED. Rys. 5. Schemat blokowy algorytmu wyznaczania tonu podstawowego Przedziały przyporządkowania zakresów częstotliwości do wizualizowanej wartości przedstawia tabela 1. Rozdzielczość transformaty FFT wynosi 62,5 Hz i stąd wynikają granice przedziałów będące wielokrotnościami tej wartości. 10

R. Weychan, T. Marciniak, A. Dąbrowski Tabela. 1. Przyporządkowanie wartości częstotliwości tonu do przedziałów Częstotliwość podstawowa tonu [Hz] Przyporządkowany przedział [Hz] 200 0-312,5 400 312,5-562,5 600 562,5-750 800 750-4000 3.2 Wyznaczanie parametru SNR z wykorzystaniem interfejsu komunikacji RTDX Kolejnym przykładem, który można zrealizować z zastosowaniem biblioteki TC6 jest wyznaczanie SNR (ang. Signal to Noise Ratio) w czasie rzeczywistym. Pierwotny model przygotowany dla procesora TMS320C6713 został zaadaptowany dla modułu DM6437 EVM. Stosunek sygnału do szumu wyznaczany jest z jako stosunek wartości oczekiwanej do odchylenia standardowego. gdzie: µ - wartość oczekiwana σ - odchylenie standardowe. µ = σ SNR (2) Bufor wejściowy dla bloku ADC ustawiono na 128 próbek (ramki 16 ms), co gwarantuje poprawne działanie algorytmu dla sygnału mowy. W celu wyznaczenia stosunku sygnału do szumu należy użyć funkcji z biblioteki Signal Processing. Wykorzystano bloki obliczające odchylenie standardowe, wartość oczekiwaną, konwersję na skalę decybelową, konwersję formatów oraz obliczenia arytmetyczne. Dodatkowo na wyjście jest wyprowadzany jedynie sygnał, którego aktualny poziom jest większy niż -30 db. Schemat blokowy dla środowiska Simulink prezentuje rys. 6. Odczyt wartości SNR odbywa się z poziomu osobnego programu GUI (ang. Graphical user interface) [5] (rys. 7), z wykorzystaniem polecenia readmsg (nazwa_kanału, typ_zmiennej) umieszczonego w kodzie programu. Nazwa kanału musi być zadeklarowana w modelu Simulink w bloku To RTDX, za pomocą którego transmitowane są dane [3,6]. Mimo iż kolejne wersje pakietu TC6 nie wspierają możliwości tego interfejsu, 11

Przetwarzanie sygnałów audio... dla wielu wykorzystywanych aktualnie procesorów sygnałowych jest to najszybszy i najprostszy sposób komunikacji ze środowiskiem zewnętrznym przez port USB. 12

R. Weychan, T. Marciniak, A. Dąbrowski Rys. 6. Schemat blokowy algorytmu obliczania SNR Program GUI umożliwia także regulację głośności na wyjściu przesyłając w czasie rzeczywistym współczynnik wzmocnienia również za pomocą kanału RTDX (blok From RTDX). W tym przypadku należy również dokonać deklaracji nazwy kanału. Szybkość transmisji wynosi 20 50 kbps. Rys. 7. Graficzny interfejs sterowania współczynnikiem wzmocnienia oraz odczytu współczynnika SNR Środowisko Matlab/Simulink wspomaga konwersję między typami zmiennych. Wykorzystane w przykładach bloki Data Type Conversion oraz db Conversion umożliwiają szybką i łatwo konfigurowalną zmianę typów danych. Złożone operacje na macierzach umożliwia m. in. blok Matrix concatenate. 3.3 Sterowanie parametrami przetwarzania na przykładzie parametryzacji współczynników opóźnień Na rys. 8. przedstawiono model realizujący funkcję pogłosu [9]. Blok Reverbation Algorithm realizujący tę funkcję opisany jest następującym równaniem różnicowym (3) Realizacja równania w środowisku Matlab/Simulink umożliwia budowę schematu w formie bezpośredniej kanonicznej prezentowanej na rys. 8 jako zawartość bloku Reeverbation Algorithm. Dostęp do poszczególnych stopni opóźnień odbywa się z poziomu zintegrowanych z modułem DM6437 EVM przełączników (SW4, switches 0-3). Przełączniki te pozwalają na wprowadzenie lub usunięcie dodatkowego opóźnienia. 13

Przetwarzanie sygnałów audio... Wszystkie zadania zarządzane są przez system BIOS, widoczny na rys. 9. Wykorzystanie schematu blokowego w przeciwieństwie do języka wysokiego/niskiego poziomu ułatwia orientację w algorytmie i przyspiesza modyfikacje oraz wprowadzanie dodatkowych elementów. Na rys. 10 przedstawiono działanie algorytmu na przykładzie głoski a oraz włączonych wszystkich opóźnieniach. Rys. 8. Forma bezpośrednia kanoniczna równania różnicowego 14

R. Weychan, T. Marciniak, A. Dąbrowski Rys. 9. Schemat główny programu Numer próbki Wartość Wartość Numer próbki Rys. 10. Głoska nieprzetworzona (wykres górny) oraz poddana operacji filtracji (wykres dolny) 3.4 Efektywność wykorzystania mocy obliczeniowej procesora sygnałowego Procentowe obciążenie procesora wyznaczone dla każdego z prezentowanych przykładów prezentuje tabela 2. Uzyskane wartości obciążenia, biorąc pod uwagę częstotliwość zegara taktującego równą 594 MHz, pozwalają wnioskować o nieoptymalności wygenerowanego przez automat kodu. Ciekawym przykładem jest wykorzystanie transformaty FFT, dla której obciążenie procesora sięga nawet 25 %. 15

Przetwarzanie sygnałów audio... Tabela. 2. Obciążenie procesora sygnałowego dla prezentowanych przykładów Przykład Wykrywanie częstotliwości podstawowej tonu krtaniowego Obliczanie SNR Realizacja pogłosu Minimalne obciążenie [%] Maksymalne obciążenie [%] 4,47 25 9,74 9,85 6,64 6,84 4 Podsumowanie Środowisko Matlab/Simulink wraz z biblioteką Target Support Package TC6 umożliwia realizację algorytmów na procesorach sygnałowych oraz ich konfigurację w niewykorzystywany do tej pory sposób. Zalety oraz ograniczenia takich reguł projektowania systemów zostały przedstawione w zestawieniu poniżej. Zalety: 1. Krótki czas przygotowania projektu 2. Prosta konfiguracja procesora oraz bloków akwizycji i przetwarzania sygnałów 3. Intuicyjny interfejs 4. Duża przejrzystość schematów 5. Modułowa generacja kodu w języku C++ z komentarzami Ograniczenia: 1. Brak optymalizacji kodu oraz niska szybkość działania w przypadku złożonych modeli 2. Brak przystosowania elementów biblioteki Signal Processing do pracy ze wszystkimi modelami procesorów 3. Konieczność odgórnej deklaracji wielkości tablic 4. Problemy z realizacją sprzężeń zwrotnych Środowisko Matlab/Simulink wraz z biblioteką Target Support Package TC6 jest narzędziem ułatwiającym implementację oraz testowanie algorytmów przetwarzania sygnału mowy. Dostępne w nim funkcje umożliwiają szybkie przygotowywanie własnych aplikacji oraz dostęp do 16

R. Weychan, T. Marciniak, A. Dąbrowski danych zarówno w celu ich odczytu jak i konfiguracji w czasie rzeczywistym. Należy jednak mieć na uwadze fakt, iż jest to przede wszystkim środowisko pomocnicze i wygenerowany kod języka wysokiego poziomu nie jest zoptymalizowany pod względem wykorzystania mocy obliczeniowej procesora sygnałowego. Głównym zastosowaniem biblioteki TC6 jest możliwość szybkiej weryfikacji algorytmów pod względem poprawności obliczeniowej. Optymalizację kodu ułatwiają komentarze oraz modułowość wygenerowanych projektów, jednakże w wielu przypadkach jest to nieopłacalne ze względu na konieczność przebudowy całego oprogramowania. Literatura [1] MATLAB 7 Getting Started Guide, Mathworks, 2009 [2] TMS320DM6437 DVDP Getting Started Guide, Texas Instruments, 2007 [3] Target Support Package 3.6 User s Guide, Mathworks, 2009. [4] Signal Processing Blockset 6 User s Guide, Mathworks, 2009. [5] Creating GUI s in Matlab, MeghanStephens, April 2,2007 [6] From MATLAB and Simulink to Real Time with TI DSPs, Texas Instruments Inc, 2007. [7] Tadeusiewicz R., Sygnał mowy, Wydawnictwa Komunikacji i Łączności, Warszawa,1988. [8] Lyons R., Wprowadzenie do cyfrowego przetwarzania sygnałów, Wydawnictwa Komunikacji i Łączności, Warszawa 2000. [9] Zieliński T. P., Cyfrowe przetwarzanie sygnałów: od teorii do zastosowań, Wydawnictwa Komunikacji i Łączności, Wyd. 2 popr, Warszawa 2007. [10] Code Composer Studio Development Tools v3.3getting Started Guide, Texas Instruments Inc, 2006. [11] TLV320AIC33/3106/34 Stereo Audio Converters, Texas Instruments Product Bulletin, 2007. W pracy zaprezentowano wyniki osiągnięte w projektach PPBW, INDECT I BW. 17

Przetwarzanie sygnałów audio... REAL TIME AUDIO SIGNAL PROCESSING USING TARGET SUPPORT PACKAGE TC6 LIBRARY Summary This paper describes techniques of acoustic signal processing using a digital signal processor module, MATLAB/Simulink environment and Target Support Package TC6 library. The presented models, prepared for DM6437 signal processor, illustrate the use of libraries and the configuration of the model blocks. Facilities and limitations of the presented programming techniques are also shown. 18