85 lines
1.7 KiB
Matlab
85 lines
1.7 KiB
Matlab
%% Funkcionalo un logisko shemu modelesana
|
|
% Laboratorijas darbs Nr.1.
|
|
% Runas signala kompresijas sistama
|
|
% Autors: Imants Pulkstenis
|
|
%
|
|
figure (1)
|
|
Ain = linspace(0,1);
|
|
Ktr = kcmpnd(Ain,600);
|
|
plot(Ain,Ktr.*Ain,'LineWidth',2)
|
|
title('Compressor A_{out}(A_{in})')
|
|
xlabel('A_{in}')
|
|
ylabel('A_{out}')
|
|
grid on
|
|
|
|
figure (2)
|
|
Ain = linspace(0,1);
|
|
Ktr = kcmpnd(Ain,600);
|
|
plot(Ain,Ktr,'LineWidth',2)
|
|
title('Compressor Gain')
|
|
xlabel('A_{in}')
|
|
ylabel('K_{tr}')
|
|
grid on
|
|
|
|
% Meroga koeficentu iegusana
|
|
Str = [400; 450; 500; 550; 600];
|
|
Aoutmax = log10(Str+1)*20;
|
|
T = table(Str,Aoutmax),
|
|
|
|
% Dekompresora raksturliknes
|
|
syms Arin Str Arout
|
|
% equ = Arin*log10(Str+1)-log10(Str*Arout+1);
|
|
equ = Arin*log10(Str+1)-log10(Str*Arin*Arout+1);
|
|
solve(equ,Arout);
|
|
pretty(ans),
|
|
|
|
Arin = linspace(0,1);
|
|
Krc = kexpnd(Arin,600);
|
|
|
|
figure(3)
|
|
plot(Arin,Krc.*Arin,'LineWidth',2)
|
|
title('Expander A_{rout}(A_{rin})')
|
|
xlabel('A_{rin}')
|
|
ylabel('A_{rout}')
|
|
grid on
|
|
|
|
figure(4)
|
|
plot(Arin,Krc,'LineWidth',2)
|
|
title('Expander Gain')
|
|
xlabel('A_{rin}')
|
|
ylabel('K_{rc}')
|
|
grid on
|
|
|
|
% linearitates parbaude
|
|
figure(5)
|
|
Ain = linspace(0,1);
|
|
Arin = (Ain.*kcmpnd(Ain,600));
|
|
Arout = Arin.*kexpnd(Arin,600);
|
|
plot(Ain,Arout,'LineWidth',2)
|
|
title('A_{rout}(A_{in})')
|
|
xlabel('A_{in}')
|
|
ylabel('A_{rout}')
|
|
grid on
|
|
|
|
% Vienkarsa LPF realizacija
|
|
syms tau s z Fs
|
|
Hs = 1/(tau*s+1);
|
|
bilin = 2*Fs*(z-1)/(z+1);
|
|
Hz = simplify(subs(Hs,s,bilin));
|
|
Hz = collect(Hz);
|
|
pretty(Hz),
|
|
|
|
% RC kedes parvades raksturlikne
|
|
figure(6)
|
|
tau = 1e-3; Fs = 8000;
|
|
f = linspace(0,10000,1000);
|
|
hs = freqs(1,[tau,1],2*pi*f);
|
|
b = [1,1];
|
|
a = [1+2*tau*Fs,1-2*tau*Fs];
|
|
hz = freqz(b,a,f,Fs);
|
|
semilogx(f,abs(hs),'-b', f,abs(hz), '--b', 'LineWidth',2);
|
|
title('Magnitudes for H(s) and H(z)')
|
|
xlabel('Frequency [Hz]')
|
|
%ylabel('magnitude')
|
|
grid on
|
|
legend ('H(s)','H(z)','Location','southwest') |