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; plot(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; plot(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; plot(vystup);
title('Vystupni signal');
xlabel('t[s]');
ylabel('s(t)');
grid on;attachment:out.png
Spektrum vstupniho signalu ziskame rychlou fourierovou transformaci.
spektrum = fft(signal);
figure; plot(abs(spektrum));
title('Spektrum vstupniho sugnalu');
xlabel('f[Hz]');
ylabel('S(f)');attachment:in-s.png
Obdobne i pro vystupni signal.
ospektrum = fft(vystup);
figure; plot(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)
Prilohy
- attachment:sempr2.m
- attachment:vystup.wav