Differences between revisions 4 and 5
Revision 4 as of 2005-05-25 13:00:22
Size: 662
Comment:
Revision 5 as of 2005-05-25 13:05:58
Size: 2013
Comment:
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; plot(signal);
title('Vstupni signal');
xlabel('t[s]');
ylabel('s(t)');
grid on;
}}}

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;
}}}

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;
}}}

Spektrum vstupniho signalu ziskame rychlou fourierovou transformaci.

{{{
spektrum = fft(signal);
figure; plot(abs(spektrum));
title('Spektrum vstupniho sugnalu');
xlabel('f[Hz]');
ylabel('S(f)');
}}}

Obdobne i pro vystupni signal.

{{{
ospektrum = fft(vystup);
figure; plot(abs(ospektrum));
title('Spektrum vystupniho signalu');
xlabel('f[Hz]');
ylabel('S(f)');
}}}

Nakonec spocitame pozadove hodnoty energii pro vstupni a vystupni signal.

{{{
Ein = sumsqr(signal)
Eout = sumsqr(vystup)
}}}

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;

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;

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;

Spektrum vstupniho signalu ziskame rychlou fourierovou transformaci.

spektrum = fft(signal);
figure; plot(abs(spektrum));
title('Spektrum vstupniho sugnalu');
xlabel('f[Hz]');
ylabel('S(f)');

Obdobne i pro vystupni signal.

ospektrum = fft(vystup);
figure; plot(abs(ospektrum));
title('Spektrum vystupniho signalu');
xlabel('f[Hz]');
ylabel('S(f)');

Nakonec spocitame pozadove hodnoty energii pro vstupni a vystupni signal.

Ein = sumsqr(signal)
Eout = sumsqr(vystup)

Prilohy

  • attachment:sempr2.m
  • attachment:vystup.wav