Generowanie sygnałów na DSP

Podobne dokumenty
Zaawansowane algorytmy DSP

Elektroniczne instrumenty muzyczne. SYNTEZA TABLICOWA Cyfrowe generatory

Przekształcenie Fouriera i splot

Filtry FIR i biblioteka DSPLIB

Elektroniczne instrumenty muzyczne. SYNTEZA TABLICOWA Cyfrowe generatory

SPRZĘTOWA REALIZACJA FILTRÓW CYFROWYCH TYPU SOI

2. Próbkowanie Sygnały okresowe (16). Trygonometryczny szereg Fouriera (17). Częstotliwość Nyquista (20).

6. Transmisja i generacja sygnałów okresowych

Systemy multimedialne. Instrukcja 5 Edytor audio Audacity

Ćwiczenie 3,4. Analiza widmowa sygnałów czasowych: sinus, trójkąt, prostokąt, szum biały i szum różowy

Transformata Fouriera

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

Symulacja sygnału czujnika z wyjściem częstotliwościowym w stanach dynamicznych

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

DYSKRETNA TRANSFORMACJA FOURIERA

Algorytmy detekcji częstotliwości podstawowej

Ćwiczenie 11. Podstawy akwizycji i cyfrowego przetwarzania sygnałów. Program ćwiczenia:

ZASTOSOWANIA PROCESORÓW SYGNAŁOWYCH - PROJEKT

Teoria przetwarzania A/C i C/A.

1. Modulacja analogowa, 2. Modulacja cyfrowa

ANALIZA SYGNAŁÓ W JEDNÓWYMIARÓWYCH

12. Demodulatory synchroniczne z fazową pętlą sprzężenia zwrotnego

Wprowadzenie do programowania na procesorze sygnałowym

Filtry cyfrowe procesory sygnałowe

Cechy karty dzwiękowej

Przetwarzanie i transmisja danych multimedialnych. Wykład 9 Kodowanie podpasmowe. Przemysław Sękalski.

Podstawy Przetwarzania Sygnałów

Wykład V. Dźwięk cyfrowy. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Zjawisko aliasingu. Filtr antyaliasingowy. Przecieki widma - okna czasowe.

PROCESORY SYGNAŁOWE - LABORATORIUM. Ćwiczenie nr 04

Analiza szeregów czasowych: 2. Splot. Widmo mocy.

10. Demodulatory synchroniczne z fazową pętlą sprzężenia zwrotnego

Badanie widma fali akustycznej

8. Realizacja projektowanie i pomiary filtrów IIR

Badanie widma fali akustycznej

Analizy Ilościowe EEG QEEG

Laboratorium Techniki ultradźwiękowej w diagnostyce medycznej

ELEKTRONIKA W EKSPERYMENCIE FIZYCZNYM

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

dr inż. Artur Zieliński Katedra Elektrochemii, Korozji i Inżynierii Materiałowej Wydział Chemiczny PG pokój 311

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

ANALIZA HARMONICZNA DŹWIĘKU SKŁADANIE DRGAŃ AKUSTYCZNYCH DUDNIENIA.

KOMPUTEROWE SYSTEMY POMIAROWE

Wstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

FFT i dyskretny splot. Aplikacje w DSP

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

TEORIA OBWODÓW I SYGNAŁÓW LABORATORIUM

ĆWICZENIE III ANALIZA WIDMOWA SYGNAŁÓW DYSKRETNYCH. ver.3

GENERACJA PRZEBIEGU SINUSOIDALNEGO.

Generatory. Podział generatorów

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Nauka o słyszeniu Wykład IV Wysokość dźwięku

POLITECHNIKA OPOLSKA

CYFROWE PRZETWARZANIE SYGNAŁÓW

Ćwiczenie 4: Próbkowanie sygnałów

uzyskany w wyniku próbkowania okresowego przebiegu czasowego x(t) ze stałym czasem próbkowania t takim, że T = t N 1 t

Analiza szeregów czasowych: 2. Splot. Widmo mocy.

A6: Wzmacniacze operacyjne w układach nieliniowych (diody)

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

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

Sieci Mobilne i Bezprzewodowe laboratorium 2 Modelowanie zdarzeń dyskretnych

Ćwiczenie 3. Właściwości przekształcenia Fouriera

Przetwarzanie sygnałów

Zastosowania Procesorów Sygnałowych. dr inż. Grzegorz Szwoch p Katedra Systemów Multimedialnych.

Dźwięk dźwiękowi nierówny, czyli o tym jak brzmi XXI wiek

Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L

TERAZ O SYGNAŁACH. Przebieg i widmo Zniekształcenia sygnałów okresowych Miary sygnałów Zasady cyfryzacji sygnałów analogowych

Przetwarzanie i transmisja danych multimedialnych. Wykład 8 Transformaty i kodowanie cz. 2. Przemysław Sękalski.

Wykład 2: Szeregi Fouriera

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

dr inż. Artur Zieliński Katedra Elektrochemii, Korozji i Inżynierii Materiałowej Wydział Chemiczny PG pokój 311

Drgania i fale II rok Fizyk BC

Szereg i transformata Fouriera

ZAKŁAD SYSTEMÓW ELEKTRONICZNYCH I TELEKOMUNIKACYJNYCH Laboratorium Podstaw Telekomunikacji WPŁYW SZUMÓW NA TRANSMISJĘ CYFROWĄ

Sposoby modelowania układów dynamicznych. Pytania

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

8. Analiza widmowa metodą szybkiej transformaty Fouriera (FFT)

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

ANALIZA WIDMOWA SYGNAŁÓW (1) Podstawowe charakterystyki widmowe, aliasing

Adam Korzeniewski p Katedra Systemów Multimedialnych

Wstęp do informatyki- wykład 1 Systemy liczbowe

Adam Korzeniewski p Katedra Systemów Multimedialnych

DYSKRETNE PRZEKSZTAŁCENIE FOURIERA C.D.

Kompresja dźwięku w standardzie MPEG-1

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Przetwarzanie sygnału cyfrowego (LabVIEW)

Adam Korzeniewski p Katedra Systemów Multimedialnych

Instrukcja do laboratorium z Fizyki Budowli. Temat laboratorium: CZĘSTOTLIWOŚĆ

Układy stochastyczne

Przykładowe pytania DSP 1

EFEKTYWNE UŻYTKOWANIE ENERGII ELEKTRYCZNEJ

Teoria sterowania - studia niestacjonarne AiR 2 stopień

3. Przetwarzanie analogowo-cyfrowe i cyfrowo-analogowe... 43

CYFROWE PRZTWARZANIE SYGNAŁÓW (Zastosowanie transformacji Fouriera)

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

7. Szybka transformata Fouriera fft

Laboratorum 2 Badanie filtru dolnoprzepustowego P O P R A W A

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Transkrypt:

Zastosowania Procesorów Sygnałowych dr inż. Grzegorz Szwoch greg@multimed.org p. 732 - Katedra Systemów Multimedialnych Generowanie sygnałów na DSP

Wstęp Dziś w programie: generowanie sygnałów za pomocą procesora sygnałowego: sygnały harmoniczne sygnał sinusoidalny różne metody szum biały generowanie dowolnych sygnałów z tablicy próbek interpolacja

Sygnał piłokształtny Sygnały harmoniczne: mają widmo, w którym występująprążki w szeregu harmonicznym: na wielokrotnościach częstotliwości podstawowej. Przykład: sygnał piłokształtny (sawtooth, rampa ).

Sygnał piłokształtny Amplituda sygnału zmienia się liniowo. Inicjalizacja: int amplituda = 0; int krok =???; Dla każdej próbki, wyjście y: y = amplituda; amplituda = amplituda + krok; Ile wynosi krok?

Obliczenie kroku amplitudy Załóżmy częstotliwość1 Hz, fs= 48 khz. Potrzeba 48 000 próbek aby amplituda zmieniła się od -32768 do 32768. Zmiana amplitudy na jedną próbkę wynosi: d = 2 32768 48000 = 1,365333... A jeżeli chcemy częstotliwość 100 Hz? d = 2 32768 48000 /100 = 136,5333...

Obliczenie kroku amplitudy Dla dowolnej częstotliwości f, krok amplitudy jako liczba Q15 wynosi (round dokonuje zaokrąglenia): d= round( f * 1,36533) Np. f= 440 Hz d= 601 Jeżeli potrzebujemy obliczyć ten krok w kodzie: d 65536 2 22368 = f = f = f 48000 32768 ( *22368) >> 14 Błędy zaokrąglenia powodujązniekształcenia, szczególnie dla małych częstotliwości.

Przepełnienie przy generowaniu Ważna uwaga: przy dodawaniu kroku wystąpi oczywiście przepełnienie, np: 32750 + 25 = 32775 = 32761 Amplituda zawija się na wartości ujemne -właśnie o to nam chodzi! Jest to jeden z nielicznych przypadków, w których wykorzystujemy efekt przepełnienia do własnych celów.

Sygnał prostokątny / impulsowy Inny przykład sygnału harmonicznego: sygnał prostokątny(square wave) lub impulsowy(pulse). Sygnałma tylko dwie wartości: -Ai +A. Szerokośćimpulsu(pulsewidth): proporcja długości części dodatniej do całego okresu (0 do 1).

Sygnał prostokątny / impulsowy Sygnał prostokątny można uzyskać z piłokształtnego: if (amplituda < prog) y = 32767; // lub inna wartość amplitudy else y = -32768; Wartość prog zależy od szerokości impulsu: prog= 2 * szerokosc 1

Problem aliasingu Sygnały harmoniczne mają nieskończone widmo. Generując sygnały harmoniczne z definicji wytworzymy sygnały zawierające alias widma. Problem wystąpi szczególnie dla większych cz. Powstanie sygnał nieharmoniczny.

Problem aliasingu Są różne metody radzenia sobie z aliasingiem. Generowanie sygnału z większą częstotliwością próbkowania (nadpróbkowanie) omówimy na kolejnym wykładzie. Obliczanie z szeregu Fouriera, np. dla piły : x( n) = A A 2 π N k = 1 ( 1) k sin ( 2πknf / fs) dla k f leżących poniżej cz. Nyquista, zniekształcamy postać czasową sygnału k

Generowanie sinusa Charakterystyka fazowa sygnału sinusoidalnego: Wiemy już jak wygenerować sygnałpiłokształtny. Musimy teraz zamienić fazę na amplitudę. Obliczanie z szeregu Taylora: sin 3 x 3! 5 x 5! 7 x 7! 9 x 9! ( x) x + +...

Generowanie sinusa z DSPLIB x wskaźnik do bufora zawierającego wartości fazy. Tu wpisujemy wartości Q15 sygnału piłokształtnego o danej częstotliwości. r wskaźnik do bufora, w którym zostanązapisane wartości sinusa nx- liczba wartości w buforze

Sinus z filtru IIR Alternatywna metoda generowania sinusa: stosujemy filtr IIR na granicy stabilności. y( n) = a y( n 1) y( n 2) a = 2π f 2cos fs

Sinus z filtru IIR Pobudzamy filtr impulsem: y(0) = sin(2πf/fs), y(1) = 0 Filtr wpada w oscylacje generuje próbki przy zerowym sygnale wejściowym. Implementacja na stałoprzecinkowym DSP jest problematyczna (powstają błędy)

Generowanie szumu białego Szum biały (whitenoise) sygnałlosowy o równomiernym rozkładzie widmowym. Do generowania cyfrowego szumu stosuje się generatory liczb pseudolosowych (RNG). Próbki są obliczane przez algorytm. LCG liniowy generator kongruentny: [ a y( n 1) b] mod M y( n) = + mod modulo, reszta z dzielenia przez M

Generowanie szumu białego Wartośćpoczątkowa y(0) to ziarno (seed). Podając to samo ziarno, dostaniemy zawsze taką samą sekwencję liczb! W praktyce: ustawiamy ziarno na zmiennąliczbę, zazwyczaj aktualny czas. Przykład: a= 2045, b= 0, M = 2 20, y(0) = 12345

Generowanie szumu białego z DSPLIB Inicjalizacja tylko raz na początku programu: rand16init(); Wypełnienie bufora r o długości nr próbkami: rand16(bufor, 2048); LCG: a= 31821, b= 13849, M= 65536

Sygnał z tablicy próbek Dowolny sygnałmożna wygenerowaćodczytując jego próbki zapisane w tablicy(wavetable). Np. możemy zapisaćw tablicy 480 próbek okresu sygnału sinus. Odczytując je z prędkością48 khz dostaniemy sinus o częstotliwości 100 Hz. Jeżeli odczytamy tylko co drugąpróbkę, mamy 240 próbek na okres, czyli f= 48000 / 240 = 200 Hz Zapętlając odczyt dostajemy ciągły sygnał.

Sygnał z tablicy próbek Przypadek ogólny: chcemy dostać dowolną cz. Krok, o jaki przesuwamy pozycję odczytu: s= f N/ fs (N liczba próbek w tablicy). Np. dla f = 456 Hz i N= 4800: s= 45,6 Zazwyczaj krok s będzie niecałkowity. Musimy czytać pomiędzy próbkami. Interpolacjapróbek: zgadywanie wartości pomiędzy zapisanymi próbkami sygnału.

Interpolacja liniowa Najprostsza interpolacja: liniowa. Niech indeks= 45,6. Interpolujemy między próbkami x(45) i x(46) poprzednia i następna. A2 A n 2 2 A n 1 1 = A n A n 1 1 n 2 n 1 = 1 A A = A 1 + n ( A2 A1 )( n 1) A1 n1 n n2 x ( 45,6) = x( 45) + ( x( 46) x( 45) ) 0, 6

Odczyt z tablicy z interpolacją // Przykład: indeks = 45.6 int indeks_c = 45; int indeks_u = 19661; // część całkowita (45), int // część ułamkowa (0.6), Q15 // Odczyt próbek z bufora int a1 = bufor[indeks_c]; // próbka poprzednia int a2 = bufor[indeks_c+1]; // próbka następna // interpolacja liniowa long a = (long)indeks_u * (a2 a1) // (n-n1)*(a2-a1) a = (a >> 15) + a1 // + a1 // wartość interpolowanej próbki y = (int)a;

Inne metody interpolacji Interpolacja liniowa jest prosta i mało dokładna. Bardziej złożone, ale dokładniejsze metody: interpolacja wielomianowa stopnia 2 (kwadratowa), 3 (kubiczna) i wyższych rzędów interpolacja funkcją sin(x)/x ( sinkowa ) -najczęściej używana w przetwarzaniu sygnałów

Sygnał z tablicy próbek Ogólne uwagi Im więcej próbek w buforze, tym lepiej (mniejsze błędy interpolacji). Możemy zapisać zupełnie dowolny sygnał. Duże wymagania pamięciowe. Metoda działa dobrze jeżeli odczytujemy i zapętlamy okres sygnału. Jeżeli nie zapętlamy, zmiana częstotliwości powoduje skrócenie lub wydłużenie sygnału.

Sampler Przykład praktyczny: sampler instrument muzyczny, który odgrywa próbki brzmień(sample) zapisane w pamięci. Zapętlanesątylko fragmenty w środku sampli, lub w ogóle nie zapętlasięich. DSP w samplerze dokonuje transpozycji zmiany wysokości generowanego dźwięku poprzez zmienny krok odczytu próbek i interpolację. Powstajązniekształcenia czasowe dźwięk skraca sięlub wydłuża. Dlatego trzeba stosowaćzbiór sampli o różnych wysokościach.

Podsumowanie Co należy wiedzieć i umieć: jak wygenerowaćsinus i szum za pomocądsplib, jak samodzielnie wygenerowaćsygnały harmoniczne, sinusa oraz szum, dlaczego w sygnałach harmonicznych powstaje aliasingi jak sobie z tym radzić, jak generować sygnały za pomocą tablicy próbek, jak użyćinterpolacji do uzyskania dowolnej częstotliwości sygnału przy odczycie z tablicy.