add matlab files

This commit is contained in:
MReenen 2024-02-22 11:35:19 +01:00
parent 576d00eb05
commit 44a241d635
20 changed files with 325 additions and 0 deletions

3
.gitmodule Normal file
View File

@ -0,0 +1,3 @@
[module "wiki"]
path = wiki
url = https://bitbucket.org/HR_ELEKTRO/dis10.git/wiki

BIN
matlab/0964590.wav Normal file

Binary file not shown.

4
matlab/DIS10_lab1_1_1 Normal file
View File

@ -0,0 +1,4 @@
a = [1, -0.9, 0.6, -0.4]
b = [0.5, -0.9]
impz(b, a, 10)

14
matlab/DIS10_lab1_1_1.asv Normal file
View File

@ -0,0 +1,14 @@
c_6=0;
c_5=9;
c_4=6;
c_3=4;
c_2=5;
c_1=9;
c_0=0;
a = [1, -0.1*c_5, 0.1*c_4, -0.c_3];
b = [0.1*c_2, -0.1*c_1, 0.1*c_0];
%impz(b, a, 10) % opd B
stepz(b, a, 25) % opd C

15
matlab/DIS10_lab1_1_1.m Normal file
View File

@ -0,0 +1,15 @@
%pkg load signal
c_6=4;%c_6=0;
c_5=9;
c_4=6;
c_3=4;
c_2=5;
c_1=9;
c_0=4;%c_0=0;
a = [1, -0.1*c_5, 0.1*c_4, -0.1*c_3];
b = [0.1*c_2, -0.1*c_1, -0.1*c_0];
%impz(b, a, 10) % opd B
stepz(b, a, 25) % opd C

6
matlab/DIS10_lab1_1_2.m Normal file
View File

@ -0,0 +1,6 @@
pkg load signals
a = [1, -0.4, 0.5];
b = [0.9];
stepz(b, a, 100)

31
matlab/DIS10_lab1_1_3.asv Normal file
View File

@ -0,0 +1,31 @@
[x, Fs] = audioread('wannabe_in_la.wav');
len = length(x) / Fs % opd A
% opd B
ft_x = fft(x);
df = Fs / length(ft_x);
f = (0 : length(ft_x) - 1) .* df;
% plot(f, 20 * log10(abs(ft_x)))
% xlabel('f (Hz)')
% ylabel('|X| (dB)')
% title('Frequentiespectrum |X(f)|')
% grid
Fc = 300;
p = Fs/(2*Fc) % opd C
k = 10; % opd D
n = -k:k;
b = sin(pi * n / p) ./ (pi * n) ;
b(n == 0) = 1 / p;
freqz(b, 1, 0:(Fs/2), Fs);
tic;
y = conv(b, x);
toc;
soundsc(y, Fs)

43
matlab/DIS10_lab1_1_3.m Normal file
View File

@ -0,0 +1,43 @@
[x, Fs] = audioread('wannabe_in_la.wav');
len = length(x) / Fs % opd A
% opd B
ft_x = fft(x);
df = Fs / length(ft_x);
f = (0 : length(ft_x) - 1) .* df;
% plot(f, 20 * log10(abs(ft_x)))
% xlabel('f (Hz)')
% ylabel('|X| (dB)')
% title('Frequentiespectrum |X(f)|')
% grid
Fc = 300 + 100*5;
p = Fs/(2*Fc) % opd C
% k = 10; % opd D
% k = 100; % opd F
k = 1000; % opd F
% k = 10000; % opd F
n = -k:k;
b = sin(pi * n / p) ./ (pi * n) ;
b(n == 0) = 1 / p;
freqz(b, 1, 0:(Fs/2), Fs);
tic; % opd G
y = conv(b, x); % opd E
toc; % opd G
% opd H
ft_y = fft(y);
df = Fs / length(ft_y);
f = (0 : length(ft_y) - 1) .* df;
% plot(f, 20 * log10(abs(ft_x)))
% xlabel('f (Hz)')
% ylabel('|X| (dB)')
% title('Frequentiespectrum |X(f)|')
% grid
soundsc(y, Fs)

25
matlab/DIS10_lab1_1_6.asv Normal file
View File

@ -0,0 +1,25 @@
[x, Fs] = audioread('wannabe_in_la.wav');
ft_x = fft(x);
Fc = 300;
p = Fs/(2*Fc);
H_f = zeros(length(ft_x), 1);
do = length(H_f)/(2*pi);
for k = 1:length(H_f)
if k < do*(pi/p)
H_f(k) = 1;
end
if k > do*(2*pi - pi/p)
H_f(k) = 1;
end
end
tic;
ft_x = fft(x);
ft_y = ft_x .* H_f;
y = ifft(ft_y, 'symmetric');
toc;

25
matlab/DIS10_lab1_1_6.m Normal file
View File

@ -0,0 +1,25 @@
[x, Fs] = audioread('wannabe_in_la.wav');
ft_x = fft(x);
Fc = 300;
p = Fs/(2*Fc);
H_f = zeros(length(ft_x), 1);
do = length(H_f)/(2*pi);
for k = 1:length(H_f)
if k < do*(pi/p)
H_f(k) = 1;
end
if k > do*(2*pi - pi/p)
H_f(k) = 1;
end
end
tic;
ft_x = fft(x);
ft_y = ft_x .* H_f;
y = ifft(ft_y, 'symmetric');
toc;

58
matlab/DIS10_lab2_0.asv Normal file
View File

@ -0,0 +1,58 @@
[ x, Fs ] = audioread("0964590.wav");
Fs
X = fftshift(fft(x));
dF = Fs / length(X);
dOmega = 2*pi / length(X);
f = -Fs/2 : dF : (Fs-dF)/2; % opd 2.1
omega = -pi : dOmega : pi-dOmega; % opd 2.2
% plot(f, 20 * log10(abs(X))); % opd 2.1
%plot(omega, 20 * log10(abs(X))); % opd 2.2
%title('Frequentiespectrum |X(f)|');
%xlabel('f (Hz)');
%ylabel('|X| (dB)');
%grid;
Oc = 0.461983;
Og = 0.01;
filterOrde = 128;
Oa = Oc - 0.5*Og;
Ob = Oc + 0.5*Og;
H = ones(1, length(X));
for i = round((pi-Oa)/dOmega) : round((pi-Ob)/dOmega)
H(i) = 0;
end
for i = round((pi+Oa)/dOmega) : round((pi+Ob)/dOmega)
H(i) = 0;
end
%plot(omega, H);
%title('filter ding |H(f)|');
%xlabel('f (Hz)');
%ylabel('|X| (dB)');
%grid;
h = zeros(1, length(filterOrde));
j = 1i;
n = 0 : filterOrde/2;
%h = 1/(2*pi) * ( exp(i*Ob*n) - exp(i*Oa*n) + exp(i*-Ob*n) - exp(i*-Oa*n) )/exp(j*n);
%h(n==0) = 1/(2*pi) * Og*2;
h = ( exp(j*Oa*n) - 1 ...
+ exp(j*(2*pi)*n) - exp(j*(2*pi-Oa)*n) ...
+ exp(j*(2*pi-Ob)*n) - exp(j*Ob*n) ...
)./(j*n*(2*pi));
h(n==0) = 1/(2*pi) * 2*pi - Og*2;
%plot(0 : filterOrde/2, h);
Fa = Oa * Fs/(2*pi)
Fb = Ob * Fs/(2*pi)
freqz(h, 1, 0 : Fs/2, Fs);
conv()

64
matlab/DIS10_lab2_0.m Normal file
View File

@ -0,0 +1,64 @@
[ x, Fs ] = audioread("0964590.wav");
Fs
X = fftshift(fft(x));
dF = Fs / length(X);
dOmega = 2*pi / length(X);
f = -Fs/2 : dF : (Fs-dF)/2; % opd 2.1
omega = -pi : dOmega : pi-dOmega; % opd 2.2
%plot(f, 20 * log10(abs(X))); % opd 2.1
%plot(omega, 20 * log10(abs(X))); % opd 2.2
%title('Frequentiespectrum |X(f)|');
%xlabel('f (Hz)');
%ylabel('|X| (dB)');
%grid;
Oc = 0.461983;
Og = 0.05;
filterOrde = 1024*1024;
Oa = Oc - 0.5*Og;
Ob = Oc + 0.5*Og;
H = ones(1, length(X));
for i = round((pi-Oa)/dOmega) : round((pi-Ob)/dOmega)
H(i) = 0;
end
for i = round((pi+Oa)/dOmega) : round((pi+Ob)/dOmega)
H(i) = 0;
end
%plot(omega, H);
%title('filter ding |H(f)|');
%xlabel('f (Hz)');
%ylabel('|X| (dB)');
%grid;
h = zeros(1, length(filterOrde));
j = 1i;
n = 0 : filterOrde/2;
%h = 1/(2*pi) * ( exp(i*Ob*n) - exp(i*Oa*n) + exp(i*-Ob*n) - exp(i*-Oa*n) )/exp(j*n);
%h(n==0) = 1/(2*pi) * Og*2;
h = ( exp(j*Oa*n) - 1 ...
+ exp(j*(2*pi)*n) - exp(j*(2*pi-Oa)*n) ...
+ exp(j*(2*pi-Ob)*n) - exp(j*Ob*n) ...
)./(j*n*(2*pi));
h(n==0) = 1/(2*pi) * 2*pi - Og*2;
%plot(0 : filterOrde/2, h);
Fa = Oa * Fs/(2*pi)
Fb = Ob * Fs/(2*pi)
freqz(h, 1, 0 : Fs/2, Fs);
y = conv(x, h, 'same');
Y = fftshift(fft(y));
dF = Fs / length(Y);
f = -Fs/2 : dF : (Fs-dF)/2;
%plot(f, 20 * log10(abs(Y)));

1
matlab/DIS10_lab2_1_1.m Normal file
View File

@ -0,0 +1 @@
dsp_assign(0, 9, 6, 4, 5, 9, 0)

BIN
matlab/addfade.p Normal file

Binary file not shown.

BIN
matlab/calcparam.p Normal file

Binary file not shown.

BIN
matlab/dsp_assign.p Normal file

Binary file not shown.

35
matlab/fdacoefs.h Normal file
View File

@ -0,0 +1,35 @@
/*
* Filter Coefficients (C Source) generated by the Filter Design and Analysis Tool
* Generated by MATLAB(R) 9.11 and DSP System Toolbox 9.13.
* Generated on: 04-May-2022 20:48:48
*/
/*
* Discrete-Time FIR Filter (real)
* -------------------------------
* Filter Structure : Direct-Form FIR
* Filter Length : 15
* Stable : Yes
* Linear Phase : Yes (Type 1)
* Arithmetic : fixed
* Numerator : s16,14 -> [-2 2)
* Input : s16,15 -> [-1 1)
* Filter Internals : Full Precision
* Output : s33,29 -> [-8 8) (auto determined)
* Product : s31,29 -> [-2 2) (auto determined)
* Accumulator : s33,29 -> [-8 8) (auto determined)
* Round Mode : No rounding
* Overflow Mode : No overflow
*/
/* General type conversion for MATLAB generated C-code */
#include "tmwtypes.h"
/*
* Expected path to tmwtypes.h
* /home/mreenen/.local/MATLAB/R2021b/extern/include/tmwtypes.h
*/
const int BL = 15;
const int16_T B[15] = {
-2107, -3477, -2950, 0, 4917, 10430, 14751, 16384, 14751,
10430, 4917, 0, -2950, -3477, -2107
};

BIN
matlab/inputsound.mat Normal file

Binary file not shown.

BIN
matlab/wannabe_in_la.wav Normal file

Binary file not shown.

1
wiki Submodule

@ -0,0 +1 @@
Subproject commit f8fd582a70ea8883b615a90d48a687940d87797c