matlab - Removing of signals in the same frequency -
i processing real audio data consists of 3 different signals of same frequency. 3 signals consisted of 7 beeps , different in length , energy level. (for every signal, delay between each beep different)
my goal filter out every of these signal using respective matched filter. problem strength of signal 1 high , can not apply other signals matched filter data (because signal 1 mask filtering results of other matched filter).
i try put process in loop. after each loop, filtered signal subtracted data. in many cases, beeps 1 signal aligned beeps of other ones (as in second picture: final beep of signal 2 masked stronger beep of signal).
my questions are:
- how can correctly subtract stronger signals without affecting weaker ones?
- after matched filtering, got energy of signal , matching position. there way determine peaks of beeps energy?
edit: code extract strongest signal:
t_matched = 165428; %matching position ct3133 = signal_generator(ones(250,1), fs/25, 380, 640, 460, 640, 400, 640); %generate "signal 1" n = length(ct3133); signal_size = length(a222203_30s_d); t_begin = t_matched - 3.16*fs/25 -125-5; %position signal 1 begin transmitted % 3.16(s) = (380 + 640 + 460 + 640 + 400 + 640)(ms) % 25: decimation factor % 125: length of 1 beep (10ms) % 5: correction coeffecient due dealy between each beep not ideal. %extracting signal 1 signal = cat(1, zeros(t_begin, 1), abs(ct3133), zeros(signal_size - t_begin - n, 1)); ct3133_sup = abs(ones(length(signal),1)-signal); ct3133_extracted = a222203_30s_d.*ct3133_sup;
with method, able remove signal 1 input data. however, removed last beep of signal 2 masked fifth beep of signal 1.
with last beep of signal 2 gone, signal 2 can detected corresponded matched filter matching position not correct. therefore, future operation of removing signal 2 can not performed.
edit 2: here graph , data after extracting of signal 1 operation.
signal 1 peak , location values:
- 0.0413 & 125804
- 0.0411 & 130555
- 0.0410 & 138555
- 0.0415 & 144305
- 0.0417 & 152305
- 0.0413 & 157306
- 0.0415 & 165306
matched filtering result of signal 1 (x: matched position, y: signal 1 energy):
input data after signal 1 removed:
clearly, signal 2 contains 6 beeps supposes 7.
signal 2 peaks values , locations, respectively:
- peak 1: 0.00102 & 110460
- peak 2: 0.001114 & 115211
- peak 3: 0.001097 & 123211
- peak 4: 0.001141 & 128961
- peak 5: 0.001139 & 136711
- peak 6: 0.001119 & 145462
result after filtering above data matched filter of signal 2:
the peak value , location : 0.3615 & 152383
*the location samples, data sampling rate : 12500hz
Comments
Post a Comment