662
Comment:
|
2478
|
Deletions are marked like this. | Additions are marked like this. |
Line 17: | Line 17: |
Nejdrive provedeme inicializaci prostedi v Matlabu. {{{ clc; clear all; close all; format long; }}} Nacteme vstupni signal a zobrazime ho. {{{ [signal,fs,b] = wavread('Sound.wav'); N = length(signal); figure; stem((0:length(signal)-1)/fs,signal,'.'); title('Vstupni signal'); xlabel('t[s]'); ylabel('s(t)'); grid on; }}} attachment:in.png Dale nacteme impulzovou odezvu filtru a zobrazime ji. {{{ filtr = dlmread('filtr.dat', '\n'); figure; stem((0:length(filtr)-1)/fs,filtr); 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. {{{ vystup = conv(signal, filtr); wavwrite(vystup, fs, b, 'vystup.wav'); figure; stem((0:length(vystup)-1)/fs,vystup,'.'); title('Vystupni signal'); xlabel('t[s]'); ylabel('s(t)'); grid on; }}} attachment:out.png Spektrum vstupniho signalu ziskame rychlou fourierovou transformaci. {{{ spektrum = fftshift(fft(signal)); figure; stem((-length(spektrum)/2:length(spektrum)/2-1)*fs/length(signal),abs(spektrum),'.'); title('Spektrum vstupniho sugnalu'); xlabel('f[Hz]'); ylabel('S(f)'); }}} attachment:in-s.png Obdobne i pro vystupni signal. {{{ ospektrum = fftshift(fft(vystup)); figure; stem((-length(ospektrum)/2:length(ospektrum)/2-1)*fs/length(vystup),abs(ospektrum),'.'); title('Spektrum vystupniho signalu'); xlabel('f[Hz]'); ylabel('S(f)'); }}} attachment:out-s.png Nakonec spocitame pozadove hodnoty energii pro vstupni a vystupni signal. {{{ Ein = sumsqr(signal) Eout = sumsqr(vystup) Ein = 5.643853576660156e+003 Eout = 1.793025481292911e+002 }}} === Zaver === Je videt, ze se jedna o horni propust. |
Semestralni prace z predmetu "Signaly asoustavy"
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:filtr.dat
Reseni
Nejdrive provedeme inicializaci prostedi v Matlabu.
clc; clear all; close all; format long;
Nacteme vstupni signal a zobrazime ho.
[signal,fs,b] = wavread('Sound.wav'); N = length(signal); figure; stem((0:length(signal)-1)/fs,signal,'.'); title('Vstupni signal'); xlabel('t[s]'); ylabel('s(t)'); grid on;
attachment:in.png
Dale nacteme impulzovou odezvu filtru a zobrazime ji.
filtr = dlmread('filtr.dat', '\n'); figure; stem((0:length(filtr)-1)/fs,filtr); 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.
vystup = conv(signal, filtr); wavwrite(vystup, fs, b, 'vystup.wav'); figure; stem((0:length(vystup)-1)/fs,vystup,'.'); title('Vystupni signal'); xlabel('t[s]'); ylabel('s(t)'); grid on;
attachment:out.png
Spektrum vstupniho signalu ziskame rychlou fourierovou transformaci.
spektrum = fftshift(fft(signal)); figure; stem((-length(spektrum)/2:length(spektrum)/2-1)*fs/length(signal),abs(spektrum),'.'); title('Spektrum vstupniho sugnalu'); xlabel('f[Hz]'); ylabel('S(f)');
attachment:in-s.png
Obdobne i pro vystupni signal.
ospektrum = fftshift(fft(vystup)); figure; stem((-length(ospektrum)/2:length(ospektrum)/2-1)*fs/length(vystup),abs(ospektrum),'.'); title('Spektrum vystupniho signalu'); xlabel('f[Hz]'); ylabel('S(f)');
attachment:out-s.png
Nakonec spocitame pozadove hodnoty energii pro vstupni a vystupni signal.
Ein = sumsqr(signal) Eout = sumsqr(vystup) Ein = 5.643853576660156e+003 Eout = 1.793025481292911e+002
Zaver
Je videt, ze se jedna o horni propust.
Prilohy
- attachment:sempr2.m
- attachment:vystup.wav