updated FilterSelect
This commit is contained in:
parent
eebe4150c6
commit
215d9e2b9f
54
src/AnuragEnchanceTarget.m
Normal file
54
src/AnuragEnchanceTarget.m
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
function output_x = AnuragEnhanceTarget(x, Fs,LOW, MID, HIGH)
|
||||||
|
%Amplify a range of frequencies a percentage around the target frequency
|
||||||
|
%Also damnpen the other frequencies so that the target is easier to hear
|
||||||
|
%percentage is expressed as a number between 0 and 1.
|
||||||
|
%target is the midpoint of the frequency range to amplify
|
||||||
|
%x and Fs are the signal and frequency
|
||||||
|
% CONTRIBUTORS:
|
||||||
|
% Anurag Jadhav: function creator
|
||||||
|
|
||||||
|
% Detailed explanation goes here
|
||||||
|
TARGET = MID;
|
||||||
|
AreaPercentage = 0.15;
|
||||||
|
[dim,len] = size(x); %get length of the input
|
||||||
|
F = Fs * ((-len/2) : ((len/2) - 1)) / len;
|
||||||
|
lenf = length(F);
|
||||||
|
Mod_Freq = ifft(fft(x)); %Fourier Transform of the input signal
|
||||||
|
output = zeros([1,lenf]); % zero array of size Mod_freq
|
||||||
|
if(dim == 2) %check for dual channel audio
|
||||||
|
F = [F;F];
|
||||||
|
output = [output;output];
|
||||||
|
end
|
||||||
|
%set the bounds
|
||||||
|
lowerBound = (1-AreaPercentage) * TARGET;
|
||||||
|
upperBound = (1+AreaPercentage) * TARGET;
|
||||||
|
%% Amplify the target frequencies and dampen the others
|
||||||
|
if(dim == 2) %iterate through both channels if track is dual channel
|
||||||
|
for n = 1:lenf
|
||||||
|
if ((lowerBound < abs(F(1,n))) && abs(F(1,n)) < upperBound)
|
||||||
|
output(1,n) = 2;
|
||||||
|
else
|
||||||
|
output(1,n) = 0.75;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for n = 1:lenf
|
||||||
|
if ((lowerBound < abs(F(2,n))) && abs(F(2,n)) < upperBound)
|
||||||
|
output(2,n) = 2;
|
||||||
|
else
|
||||||
|
output(2,n) = 0.75;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else %iterate onnly once for monochannel
|
||||||
|
for n = 1:lenf
|
||||||
|
if ((lowerBound < abs(F(n))) && abs(F(n)) < upperBound)
|
||||||
|
output(n) = 2;
|
||||||
|
else
|
||||||
|
output(n) = 0.75;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
%%Filter the original signal and transform
|
||||||
|
filtered_Mod_Freq = fftshift(Mod_Freq .* output);
|
||||||
|
output_x = real(ifft(filtered_Mod_Freq));
|
||||||
|
|
||||||
|
end
|
@ -19,6 +19,10 @@ function output = FilterSelect(input,Fs,LOW,MED,HIGH,number)
|
|||||||
output = seperate_prevalent_schluep(input, Fs, LOW, MED, HIGH);
|
output = seperate_prevalent_schluep(input, Fs, LOW, MED, HIGH);
|
||||||
elseif(number == "Option 6")
|
elseif(number == "Option 6")
|
||||||
output = bandreject_filter(input, Fs, LOW, HIGH);
|
output = bandreject_filter(input, Fs, LOW, HIGH);
|
||||||
|
elseif(number == "Option 7")
|
||||||
|
output = AnuragEnhanceTarget(input, Fs, LOW,MID, HIGH);
|
||||||
|
elseif(number == "Option 8")
|
||||||
|
output = AnuragDampenTarget(input, Fs, LOW,MID, HIGH);
|
||||||
else
|
else
|
||||||
output = input;
|
output = input;
|
||||||
end
|
end
|
||||||
|
Reference in New Issue
Block a user