| Size: 2478 Comment:  | Size: 2645 Comment:  | 
| Deletions are marked like this. | Additions are marked like this. | 
| Line 1: | Line 1: | 
| = Semestralni prace z predmetu "Signaly asoustavy" = | = Semestralni prace z predmetu "Signaly a soustavy" = | 
| Line 5: | Line 5: | 
| * Soubor Sound.wav obsahuje 8-mi bitové vzorky audiosignálu, jenž je zpracováván obvodem na úpravu zvuku, jehož impulsová odezva je v souboru filtr.dat. | * Soubor {{{Sound.wav}}} obsahuje 8-mi bitové vzorky audiosignálu, jenž je zpracováván obvodem na úpravu zvuku, jehož impulsová odezva je v souboru {{{filtr.dat}}}. | 
| Line 13: | Line 13: | 
| * attachment:Sound.wav | |
| Line 26: | Line 27: | 
| === Vstupni a vystupni signaly === | |
| Line 29: | Line 32: | 
| [signal,fs,b] = wavread('Sound.wav'); N = length(signal); figure; stem((0:length(signal)-1)/fs,signal,'.'); | [i,fs,b] = wavread('Sound.wav'); N = length(i); figure; stem((0:length(i)-1)/fs,i,'.'); | 
| Line 43: | Line 46: | 
| filtr = dlmread('filtr.dat', '\n'); figure; stem((0:length(filtr)-1)/fs,filtr); | f = dlmread('filtr.dat', '\n'); figure; stem((0:length(f)-1)/fs,f); | 
| Line 56: | Line 59: | 
| vystup = conv(signal, filtr); wavwrite(vystup, fs, b, 'vystup.wav'); figure; stem((0:length(vystup)-1)/fs,vystup,'.'); | o = conv(i, f); wavwrite(o, fs, b, 'vystup.wav'); figure; stem((0:length(o)-1)/fs,o,'.'); | 
| Line 67: | Line 70: | 
| Spektrum vstupniho signalu ziskame rychlou fourierovou transformaci. | === Spektra vstupniho a vystupniho signalu === Spektrum vstupniho signalu ziskame fourierovou transformaci. Uveden je obecny vztah, ale pro konkretni vypocet byla pouzita rychla fourierova transformace (samozrejme diskretni). attachment:f-four.png | 
| Line 70: | Line 77: | 
| spektrum = fftshift(fft(signal)); figure; stem((-length(spektrum)/2:length(spektrum)/2-1)*fs/length(signal),abs(spektrum),'.'); | is = fftshift(fft(i)); figure; stem((-length(is)/2:length(is)/2-1)*fs/length(i),abs(is),'.'); | 
| Line 82: | Line 89: | 
| ospektrum = fftshift(fft(vystup)); figure; stem((-length(ospektrum)/2:length(ospektrum)/2-1)*fs/length(vystup),abs(ospektrum),'.'); | os = fftshift(fft(o)); figure; stem((-length(os)/2:length(os)/2-1)*fs/length(o),abs(os),'.'); | 
| Line 91: | Line 98: | 
| === Energie signalu === | |
| Line 93: | Line 102: | 
| attachment:f-e.png | |
| Line 94: | Line 105: | 
| Ein = sumsqr(signal) Eout = sumsqr(vystup) | Ein = sumsqr(i) Eout = sumsqr(o) | 
Semestralni prace z predmetu "Signaly a soustavy"
Zadani
- Soubor Sound.wav obsahuje 8-mi bitové vzorky audiosignálu, jenž je zpracováván obvodem na úpravu zvuku, jehož impulsová odezva je v souboru filtr.dat. 
- Zobrazte vstupní a výstupní signál a jejich spektra.
- Určete energii vstupního a výstupního signálu.
- Z tvaru a průběhu vstupního, výstupního signálu a impulsové odezvy filtru (případně z jejich spekter) usudte na typ zvukové úpravy.
Prilohy
- attachment:2_P010-3.pdf
- attachment:Sound.wav
- attachment:filtr.dat
Reseni
Nejdrive provedeme inicializaci prostedi v Matlabu.
clc; clear all; close all; format long;
Vstupni a vystupni signaly
Nacteme vstupni signal a zobrazime ho.
[i,fs,b] = wavread('Sound.wav');
N = length(i);
figure; stem((0:length(i)-1)/fs,i,'.');
title('Vstupni signal');
xlabel('t[s]');
ylabel('s(t)');
grid on;attachment:in.png
Dale nacteme impulzovou odezvu filtru a zobrazime ji.
f = dlmread('filtr.dat', '\n');
figure; stem((0:length(f)-1)/fs,f);
title('Impulzova odezva filtru');
xlabel('t[s]');
ylabel('s(t)');
grid on;attachment:imp.png
Dalsim krokem je aplikace impulzove odezvy filtru na vstupni signal. To provedeme pomoci konvoluce. Vystup opet zobrazime.
o = conv(i, f);
wavwrite(o, fs, b, 'vystup.wav');
figure; stem((0:length(o)-1)/fs,o,'.');
title('Vystupni signal');
xlabel('t[s]');
ylabel('s(t)');
grid on;attachment:out.png
Spektra vstupniho a vystupniho signalu
Spektrum vstupniho signalu ziskame fourierovou transformaci. Uveden je obecny vztah, ale pro konkretni vypocet byla pouzita rychla fourierova transformace (samozrejme diskretni).
attachment:f-four.png
is = fftshift(fft(i));
figure; stem((-length(is)/2:length(is)/2-1)*fs/length(i),abs(is),'.');
title('Spektrum vstupniho sugnalu');
xlabel('f[Hz]');
ylabel('S(f)');attachment:in-s.png
Obdobne i pro vystupni signal.
os = fftshift(fft(o));
figure; stem((-length(os)/2:length(os)/2-1)*fs/length(o),abs(os),'.');
title('Spektrum vystupniho signalu');
xlabel('f[Hz]');
ylabel('S(f)');attachment:out-s.png
Energie signalu
Nakonec spocitame pozadove hodnoty energii pro vstupni a vystupni signal.
attachment:f-e.png
Ein = sumsqr(i) Eout = sumsqr(o) Ein = 5.643853576660156e+003 Eout = 1.793025481292911e+002
Zaver
Je videt, ze se jedna o horni propust.
Prilohy
- attachment:sempr2.m
- attachment:vystup.wav