Jump to content

Efekt kolejowego radia (kod)


dominpiano

Recommended Posts

Hejka, ostatnio miałem sytuację, gdzie rozmawiałem przez centralkę i nagle dyżurny z sąsiedniej stacji (ten drugi, nie ten z którym rozmawiałem) odezwał się na radiu, co kompletnie zagłuszyło mi centralkę. Oczywiście ja go słyszałem, ale ten dyżurny, z którym rozmawiałem nie słyszał, bo było to już za daleko.

Proponuję więc, aby dodać efekt takiego kolejowego radia, + wykrycie czy ktoś gada na centralce i wtedy ściszenie radia. Oto kod w Matlabie (strona nie zezwala plików .m XD), który napisałem aby taki efekt dodać -  wystarczy go przerobić na język w którym to piszecie

(Dołączam również prezentację jak to działa)

GŁÓWNY PROGRAM:

 

%Read signal
[signal, fs] = audioread('signal.mp3');
 
%Store original signal
originalSignal = signal;
 
%To resample, choose sampling rate and calculate some stuff
newFs = 10000;
signal = resample(signal, newFs, fs);
Ts = 1/newFs;
n = length(signal);
 
%Add some noise and high-freq sines
t = (0:n-1)*Ts;
highSine = sin(2*pi*4700*t') + sin(2*pi*4240*t');
noise = randn(n, 1);
 
%Mix it up...
mixedSignal = signal + noise*0.005 + highSine*0.005;
 
%High-pass the signal, gain it and add it to make it more crispy
myHighFilter = highPassFilter();
highSignal = filter(myHighFilter, mixedSignal)*5;
outputSignal = mixedSignal + highSignal;
 
lowCutFilter = lowcut();
outputSignal = filter(lowCutFilter, outputSignal);
 
sound(outputSignal, newFs);
 
 
FUNKCJA highPassFilter.m:
 
function filtrHigh = highPassFilter
 
Fs = 10000;
N = 40;
Fc1 = 1500;
Fc2 = 3500;
flag = 'scale';
 
window = blackman(N+1);
 
b = fir1(N, [Fc1 Fc2]/(Fs/2), 'bandpass', window, flag);
filtrHigh = dfilt.dffir(b);
 
 
FUNKCJA lowcut.m:
 
function filtrLow= lowcut
 
Fs = 10000;
N = 50;
Fc = 600;
flag = 'scale';
win = nuttallwin(N+1);
b = fir1(N, Fc/(Fs/2), 'high', win, flag);
filtrLow = dfilt.dffir(b);
 

 

Edited by dominpiano
  • I agree 4
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy