[an error occurred while processing this directive]
|
ну только повторюсь что такие длинные м-последовательности не инетересны
поэтому я играюсь с покороче.
ну и вот картинки. - матлаб
% parameters
buffer_size = 40000;
test_signal_size = 1;
test_shift = 0; %- то самое смещение что ищем
% take IR from file
b_filter = zeros(128,1);
% fid = fopen('8k_0dB_imp_resp.bin','r');
% b_filter = fread(fid,'int16'); % read all file
% b_filter = b_filter/32768; % --- normalize ---
% fclose(fid);% у вас файла нет - потому вот маленький кусочек чего то похожего
b_filter(20) = 0.11;
b_filter(25) = -0.14;
b_filter(30) = 0.25;
b_filter(32) = -0.15;
b_filter(35) = 0.12;
b_filter(40) = -0.09;% input signal - signal supplied to system
input = zeros(buffer_size,1);
pow = 15; % m sequence power -> length of m_sequnce is (2^pow -1)
m = mseq(2,pow);
input(1:2^pow -1) = m;
% produce result signal - signal from system
output = filter(b_filter,1,input);
output = [zeros(test_shift,1); output]; % - вот тут оно вкрадывается
% correlation
c = xcorr(output, input(1:2^pow -1), buffer_size);
mseq() - взят отседова:
http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=990&objectType=file
смотрим на картинку С - пики как пики. длину можно любую брать боковые пики все равно есть.
E-mail: info@telesys.ru