EQ from measurement-data
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Anton Hoyer
am 2 Dez. 2021
Kommentiert: Mathieu NOE
am 9 Dez. 2021
I have a set of data from a measurement [frequency, relative gain] stored in an excel-table. Now i want to use those values to build an EQ or otherwise somehow substract the values from mulitble audio-files.
Since the parametric EQ is limited to 10 bands and the graphic EQ has fixed frequency-bands, is there any chance doing this using the AudioToolbox?
Talking about a table of around 4000 frequencies with corresponding gain-values. Audio files are IRs of length under 1 second.
I'm thankful for any advice.
0 Kommentare
Akzeptierte Antwort
Mathieu NOE
am 2 Dez. 2021
hello
maybe you should share the data file (measurements) and code if you have already started one
once we have created the bank of filters we can use them to EQ the signal
for info, this code was for generating a bannk of 23 bandpass filters from 100 to 8,000 Hz center frequencies
%% INitializing Matlab Environment
close all;
clc;
clearvars;
b=log10(8000);%stop frequency and 100Hz is the pass frequency
yc1=logspace(2,b,23);
yd=stem(yc1);
grid on
xlabel('Borders','FontSize',12);
ylabel('F (Hz)','FontSize',12);
set(gca,'YScale', 'log')
%%
fs=44.1e3; %sampling frequency
figure(2)
hold on
for i= 1:1:23
BW = yc1(i)/5; % BW should be proportionnal to center frequencies (not fixed)
f_low = yc1(i) - BW/2;
f_high = yc1(i) + BW/2;
[B,A] = butter(1,[f_low, f_high]*2/fs,'bandpass');
freq = logspace(log10(f_low/4),log10(f_high*4),200);
[h]=freqz(B,A,freq,fs);
semilogx(freq,20*log10(abs(h)));
end
hold off
set(gca,'XLim',[0 fs/2.56],'XTick',10.^(0:4),'YLim',[-12 0],'YTick',-12:2:0,'XScale', 'log')
6 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Audio I/O and Waveform Generation finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!