Code: Selecteer alles
[y FS Nbits OPTS]=wavread('C:\Users\Gebruiker\Documents\MATLAB\marco.wav');
[lengte brol]=size(y);
met volgende waardes in volgende functie:
Code: Selecteer alles
fc=FS/6-1000/2;
F=[0 fc]; %is de band ==>>dus van Ohz tot f afsnijd frequentie
% onderdruking 60db
lin=10^(-60)/20;
A=[1 0]; % [1 0] = laagdoorlaat
DEV=[];
DEV=[lin lin];
Code: Selecteer alles
[N,Wn,BTA,FILTYPE] = KAISERORD(F,A,DEV,FS);
B = FIR1(N, Wn, FILTYPE, kaiser( N+1,BTA ), 'noscale' );
Code: Selecteer alles
laagdoorlaat=filter(B,1,y);
Dit af spelen lukt.
Nu wil ik de hoge tonen bepalen mbv het complementaire principe normaal zou Hoogspec=Alles-Laag maar omdat op Alles geen delay word toegepast doe ik dit op volgende manier:
Code: Selecteer alles
for floop=0 :freqr: FS
delay(n)=exp((i*2*pi*floop)*(N/2));
n=n+1;
end
MiddenHoog=(Y.*delay'-SpecLaag);
Vraag: Het berekenen van die delay duurt enorm lang is dit wel een juiste manier? hoe kan ik dat beter doen? uiteindelijk hoor ik wel iets maar de ifft van het hoge spectrum is complex waardoor ik nog enkel het real deel mag nemen (dat lijk me ook een reden om aan te nemen dat er bij die delay iets fout zit) bijkomend zitten er verschuivingen in het hoog deel, het is niet meer waarheidsgetrouw.
Wie ziet waar ik de fout in gaan? Groeten.