sprawozdanie lab 6

WOJSKOWA AKADEMIA TECHNICZNA

Cyfrowe przetwarzanie sygnałów

Sprawozdanie z laboratorium nr 6

Temat: Transformacje ortogonalne: DCT, Haara (dźwięk i obraz)

IMIĘ : Mateusz

NAZWISKO : Suchocki

GRUPA : I8G1S1

Treść zadania

a) dźwięk:

Funkcje: dct(), idct(), abs(), haar()*, ihaar()*.

b) obraz:

Następnie wykonaj transformatę odwrotną i wyświetl obraz. Porównaj z oryginałem.

Powyższe czynności wykonaj dla macierzy:

Funkcje: dct2(), idct2(), haar2()*, ihaar2()*.

Rozwiązania poszczególnych podpunktów:

Dźwięk

Transformata DCT

Pierwszym etapem zadania było wczytanie ścieżki dźwiękowej z pliku ‘’.wav”. Do wczytania sygnału należało posłużyć się funkcja wavread(). Chcąc odsłuchać wczytaną ścieżkę dźwiękową należało posłużyć się funkcja sound().

[v,fs]=wavread('01c.wav'); %wczytanie ścieżki dźwiękowej

Kolejno wyznaczona została transformata dct oraz widmo amplitudowe transformaty:

transformata_dct=dct(v); %transformata dct

W_amplitudowe=abs(transformata_dct); %wyznaczenie widmaamplitudowego dct

Przed wyświetleniem wyników należało wyskalować osie:

dlugosc=length(v);

skal_T=0:1/fs:(dlugosc-1)/fs; %opis osi w sekundach

skal_F=0:(fs/length(transformata_dct)):(fs*length(transformata_dct)-1)/(length(transformata_dct)); %opis osi w Hz

Przedstawienie otrzymanych wyników na wykresach realizowane jest przy pomocny następujących linijek kodu:

figure(1);

subplot(3,2,1);

plot(skal_T,v);

title('przebieg czasowy sygnału');

subplot(3,2,2);

plot(skal_F,W_amplitudowe);

title('widmo amplitudowe transformaty dct');

Otrzymane wykresy:

Rys1. Przebieg czasowy sygnału i moduł transformaty dct

Kolejnym etapem było dokonanie filtracji górno i dolno przepustowej

Filtr górno przepustowy

Filtracja polegała na stworzeniu filtra zerującego n początkowych próbek z transformaty dct. Poniższy kod realizuje podane założenie poprzez stworzenie pomocniczego wektora i przemnożeniu go następnie przez wektor transformaty:

%filtr górnoprzepustowy

m=(3/10)*dlugosc; %wyznaczenie długości do wyzerowania

vektor_pomocniczy=ones(dlugosc,1); %wektor pomocniczy do wyznaczenia filtru HP

vektor_pomocniczy(1:m)=0; %wyzerowanie wektora w danym przedziale

transformata_dct1=transformata_dct.*vektor_pomocniczy; %przemnożenie wektora pomocniczego z dct

idct1=real(idct(transformata_dct1)); %odwrotna transformata dct

Przedstawienie otrzymanych wyników na wykresach realizowane jest przy pomocny następujących linijek kodu:

subplot(3,2,3);

plot(skal_T,idct1);

title('przebieg czasowy po filtracji górno przepustowej');

xlabel('T');

subplot(3,2,4);

plot(skal_F,abs(transformata_dct1));

title('widmo amplitudowe po filtracji górno przepustowej');

xlabel('Fs');

Otrzymane wyniki:

Rys2. Przebieg czasowy po filtracji górno przepustowej i moduł transformaty dct po filtracji

Filtr dolno przepustowy

Analogicznie jak w przypadku filtracji górno przepustowej różnica jest w tym ,że zerowane jest n próbek z końca transformaty.

%filtr dolnoprzepustowy

vektor_pomocniczy1=ones(dlugosc,1); %wektor pomocniczy do wyznaczenia filtru LP

vektor_pomocniczy1(m:dlugosc)=0; %wyzerowanie wektora w danym przedziale

transformata_dct2=transformata_dct.*vektor_pomocniczy1;%przemnożenie wektora pomocniczego z transformata dct

idct2=real(idct(transformata_dct2)); %odwrotna transformata dct

Przedstawienie otrzymanych wyników na wykresach realizowane jest przy pomocny następujących linijek kodu:

subplot(3,2,5);

plot(skal_T,idct2);

title('przebieg czasowy po filtracji dolno przepustowej');

xlabel('T');

subplot(3,2,6);

plot(skal_F,abs(transformata_dct2));

title('widmo amplitudowe po filtracji dolno przepustowej');

xlabel('Fs');

sound(idct1);

Otrzymane wyniki:

Rys3. Przebieg czasowy po filtracji dolno przepustowej i moduł transformaty dct po filtracji

Porównanie sygnału oryginalnego z sygnałami kolejno po filtracji górno przepustowej i filtracji dolno przepustowej

Rys4.

Jak widać na rys4 przebieg czasowy sygnału przed filtracja różni się od sygnałów po filtracji zarówno dolno i górno przepustowej. Odsłuchując te dźwięki można dostrzec różnice w porównaniu do ścieżki oryginalnej. Po filtracji górno przepustowej dźwięk jest obniżony również jak widać na wykresie sygnał jest stosunkowo słabszy czyli dźwięk jest cichszy . Po filtracji dolno przepustowej dźwięk również wydaje się być obniżony.

Transformata Haara

Ze względu na złożoność obliczeniową transformaty haara zmniejszyłem wektor wczytanego dźwięku o połowę co się wiąże również z koniecznością wyskalowania na nowo wykresów.

Wyznaczenie transformaty haara i widma amplitudowego:

figure(2);

dlugosc=length(v)*1/2;

vektor=v(1:dlugosc);

transformata_haar = haar(vektor);

Wyskalowanie wykresu:

skal_T = 0:1/fs:(length(vektor)-1)/fs;

skal_F = 0:fs/length(transformata_haar):fs*(length(transformata_haar)-1)/length(transformata_haar);

Przedstawienie otrzymanych wyników na wykresach realizowane jest przy pomocny następujących linijek kodu:

subplot(3,2,1);

plot(skal_T,vektor);

title('przebieg czasowy dzwięku');

subplot(3,2,2);

plot(skal_F,abs(transformata_haar));

title('widmo amplitudowe transformaty haar');

Otrzymane wyniki:

Rys5. Przebieg czasowy dźwięku i moduł transformaty haara

Filtracja górno przepustowa

Wyznaczenie pomocniczego wektora(filtra) a następnie pomnożenie transformaty haara przez uzyskany filtr:

%filtr górnoprzepustowy

dlugosc=length(transformata_haar);

m=(1/5)*dlugosc; %wyznaczenie długości do wyzerowania

vektor_pomocniczy2=ones(length(transformata_haar),1); %wektor pomocniczy do wyznaczenia filtru HP

vektor_pomocniczy2(1:m)=0; %wyzerowanie wektora w danym przedziale

disp(length(vektor_pomocniczy2));

disp(length(transformata_haar));

transformata_haar1=transformata_haar.*vektor_pomocniczy2; %przemnożenie wektora pomocniczego z dft

ihaar1=real(ihaar(transformata_haar)); %odwrotna transformata Haara

Kolejne skalowanie ze względu na wydłużenie sie sygnału po odwróceniu transformaty haara

skal_T=0:1/fs:(length(transformata_haar)-1)/fs;

Przedstawienie otrzymanych wyników na wykresach realizowane jest przy pomocny następujących linijek kodu:

subplot(3,2,3);

plot(skal_T,ihaar1);

title('przebieg czasowy po filtracji górno przepustowej');

subplot(3,2,4);

plot(skal_F,abs(transformata_haar1));

title('widmo amplitudowe po filtracji górno przepustowej');

Otrzymane wyniki:

Rys6.przebieg czasowy po filtracji górno przepustowej i moduł transformaty haara po filtracji

Filtracja dolno przepustowa

Wyznaczenie pomocniczego wektora(filtra) a następnie pomnożenie transformaty haara przez uzyskany filtr:

%filtr dolnoprzepustowy

vektor_pomocniczy3=ones(length(transformata_haar),1); %wektor pomocniczy do wyznaczenia filtru LP

vektor_pomocniczy3(m:dlugosc)=0; %wyzerowanie wektora w danym przedziale

transformata_haar2=transformata_haar.*vektor_pomocniczy3;%przemnożenie wektora pomocniczego z dct

%transformata_dct1 -nowa transformata po filtracji %LP

ihaar2=real(ihaar(transformata_haar2)); %odwrotna transformata haara

Przedstawienie otrzymanych wyników na wykresach realizowane jest przy pomocny następujących linijek kodu:

subplot(3,2,5);

plot(skal_T,ihaar2);

title('przebieg czasowy po filtracji dolno przepustowej');

subplot(3,2,6);

plot(skal_F,abs(transformata_haar2));

title('widmo amplitudowe po filtracji dolno przepustowej');

Otrzymane wyniki:

Rys7.przebieg czasowy po filtracji dolno przepustowej i moduł transformaty haara po filtracji

Porównanie sygnału oryginalnego z sygnałami kolejno po filtracji górno przepustowej i filtracji dolno przepustowej

Rys8.

Jak widać na rys8 przebieg czasowy sygnału przed filtracja różni się od sygnałów po filtracji zarówno dolno i górno przepustowej. Odsłuchując te dźwięki można dostrzec różnice w porównaniu do ścieżki oryginalnej. Sygnał po filtracji górno przepustowej wydaje się być zaszumiony natomiast po filtracji dolno przepustowej dźwięk jest zniekształcony.

Obraz

Transformata dct

Wczytanie obrazu wykonanie transformaty dct i jej modułu:

%wczytanie obrazu do zmiennych

[x,map]=imread('samochod.bmp');

transformata_dct=dct2(x);

modul=abs(transformata_dct)

Przedstawienie otrzymanych wyników realizowane jest przy pomocy następujących linijek kodu:

figure(1);

subplot(2,1,1);

imshow(x);

title('obraz samochod');

subplot(2,1,2);

imshow(uint8(modul));

title('widmo amplitudowe obrazu po transformacie dct');

Otrzymane obrazy:

Rys9.obraz samochod.bmp i moduł transformaty dct

Filtr górno przepustowy

Kod przedstawia realizację filtracji:

%filtr górno przepustowy

figure(2);

n=25; %wilekść wyzerowania macierzy transforamty

f_g_p=ones(size(transformata_dct));

f_g_p(1:n,1:n)=0;

obraz=uint8(idct2(transformata_dct.*f_g_p));

Przedstawienie otrzymanych wyników realizowane jest przy pomocy następujących linijek subplot(2,2,1);

imshow(obraz);

title('obraz po filtracji górno przepustowej');

subplot(2,2,2);

imshow(uint8(abs(transformata_dct.*f_g_p)));

title('widmo amplitudowe po filtrze gorno przepustowym');

Filtr górno przepustowy

Kod przedstawia realizację filtracji:

%filt dolno przepustowy

f_d_p=zeros(size(transformata_dct));

f_d_p(1:n,1:n)=1;

obraz=uint8(idct2(transformata_dct.*f_d_p));

Przedstawienie otrzymanych wyników realizowane jest przy pomocy następujących linijek subplot(2,2,3);

image(obraz);

title('obraz po filtracji dolno przepustowej');

subplot(2,2,4);

image(uint8(abs(transformata_dct.*f_d_p)));

title('widmo amplitudowe po filtracji dolno przepustowje');

Otrzymane obrazy:

Po filtracji górno przepustowej (obraz górny prawy róg) otrzymaliśmy krawędzie. Obraz krawędzi jest płynny nie widać odznaczających się pikseli. Natomiast po filtracji dolno przepustowej (obraz dolny prawy róg) obraz jest rozmazany. Widoczne są poszczególne piksele, wzrok szybko się męczy patrząc na taki obraz.

Transformata haara

Obliczanie transformaty haara i jej modułu oraz wyświetlenie uzyskanych wyników:

%trnasformata haar

transformata_haar=haar2(x);

modul=abs(transformata_haar);

figure(3);

subplot(2,1,1);

imshow(x);

title('obraz samochod');

transformata_haar=haar2(x);

subplot(2,1,2);

imshow(uint8(modul));

title('widmo amplitudowe obrazu po transformacie haar');

Otrzymane wyniki:

Filtr dolno przepustowy

Kod przedstawia realizację filtracji

n=100; %wilekość wyzerowania macierzy transformaty

%filtracja dolno przepustowa

figure(4);

f_d_p1=zeros(size(transformata_haar));

f_d_p1(1:n,1:n)=1;

obraz=uint8(ihaar2(transformata_haar.*f_d_p1));

colormap(map);

Przedstawienie otrzymanych wyników realizowane jest przy pomocy następujących linijek subplot(2,2,1);

imshow(obraz);

title('obraz po filtracji dolno przepustowej');

subplot(2,2,2);

imshow(uint8(abs(transformata_haar.*f_d_p1)));

title('widmo amplitudowe po transformacie haar');

Filtr górno przepustowy

Kod przedstawia realizację filtracji

n=100;

%filtracja górno przepustowa

f_g_p1=ones(size(transformata_haar));

f_g_p1(1:n,1:n)=0;

obraz=uint8(ihaar2(transformata_haar.*f_g_p1));

colormap(map);

Przedstawienie otrzymanych wyników realizowane jest przy pomocy następujących linijek subplot(2,2,3);

imshow(obraz);

title('obraz po filtracjo górno przepustowej');

subplot(2,2,4);

imshow(uint8(abs(transformata_haar.*f_g_p1)));

title('widmo amplitudowe po transformacie haar');

otrzymane wyniki:

Dla filtru dolno przepustowego wyraźnie widać piksele, obraz nie jest rozmyty widać „szczegóły” w postaci krawędzi pikseli dzięki temu nie męczy on tak wzroku jak w przypadku filtru dolno przepustowego dla transformaty dct. Dla filtru górno przepustowego otrzymaliśmy krawędzie, lecz w porównaniu z filtracja górno przepustowa dla transformaty dct obraz jest mniej „ciągły”.


Wyszukiwarka

Podobne podstrony:
WYDZIA~1, Labolatoria fizyka-sprawozdania, !!!LABORKI - sprawozdania, Lab, !!!LABORKI - sprawozdania
spr-122, Labolatoria fizyka-sprawozdania, !!!LABORKI - sprawozdania, Lab, !!!LABORKI - sprawozdania,
SPRAWOZDANIE Z LAB 2 Badanie wypływu cieczy ze zbiornika
SPRAWOZDANIE LAB 4 mieszacz
Fizyka cw 123 wyniki, Labolatoria fizyka-sprawozdania, !!!LABORKI - sprawozdania, Lab, !!!LABORKI -
półprzewodnikowe złącze p-n, Labolatoria fizyka-sprawozdania, !!!LABORKI - sprawozdania, Lab, !!!LAB
Sprawozdanie Lab 1 (2)
Natężenie światla, LAB21, Sprawozdanie z lab. fizyki
Sprawozdanie 7 lab my
I8G1S1 Suchocki Mateusy Systemy Dialogowe sprawozdanie lab 3 i 4 sprawozdanie
Forma sprawozdania z LAB (dz i z)
LAB113, Labolatoria fizyka-sprawozdania, !!!LABORKI - sprawozdania, Lab, !!!LABORKI - sprawozdania,
Wnioski sprawozdania - Lab 2, Politechnika Wrocławska - Inżynieria Lotnicza, Semestr VII, Podstawy e
laborka37, Labolatoria fizyka-sprawozdania, !!!LABORKI - sprawozdania, Lab, !!!LABORKI - sprawozdani
41konspekt, Labolatoria fizyka-sprawozdania, !!!LABORKI - sprawozdania, Lab, !!!LABORKI - sprawozdan
Wyniki do ćwiczenia 82 dla dave, Labolatoria fizyka-sprawozdania, !!!LABORKI - sprawozdania, Lab, !!

więcej podobnych podstron