Witam!
Stoje przed zadaniem zaprogramowania kodera i dekodera sygnału cyfrowego w środowisku Matlab. O ile z koderem nie miałem większych problemów to z dekoderem jest niestety inaczej. Mój koder wygląda następująco:
% czytanie z wav
%[x, fp] = wavread('muzyka_plus15db.wav');
%[x, fp] = wavread('muzyka_poziom_0dB(271).wav');
[x, fp] = wavread('test_1khz_0dbfs.wav');
%########## KODER ##########
disp('START');
x = x';
x=x(:,1:192000);
n = length(x(1,:));
pilotlevel = 0.1;
dt = 1/fp;
t = dt * (0:n-1);
disp('...pracuje...');
pilot = pilotlevel * sin(2*pi*19000*t); %poziom pilota
tone38k = sin(2*pi*38000*t);
y = pilot + 0.5*(x(1,:)+x(2,:)) + 0.5*tone38k .* (x(2,:)-x(1,:));
%długość częstotliwości pilotowej (transformata Fouriera)
plot(abs(fft(y)),'b');
grid on;
legend('sygnał zakodowany');
title('Programowy koder i dekoder stereo');
disp('KONIEC')
Działa on prawidłowo tzn. generuje wykres widma częstotliwościowego z pilotem. Jeśli chodzi o sam dekoder to kompletnie nie wiem jak to ugryźć. Wiem, że musze zastosować filtr iir, ale oprócz wygenerowania go w Simulinku lub poprzez narzędzie fdatool nie mam bladego pojęcia jak go zrealizować w kodzie. Piszę do Was, bo po długich godzinach spędzonych na szukaniu jakichś konkretnych wskazówek nie udało mi się znaleźć nic, jeśli chodzi o realizacje dekodera w Matlabie, bo w Simulinku udało mi się bez problemu zaprojektować obydwa analizatory sygnału cyfrowego.
POMOCY! ;)