Спектральное вычитание в Java — с использованием JMathLib

я новичок в Android и DSP. я реализую алгоритм спектрального вычитания, спасибо

моя цель - использовать этот алгоритм в буфере потока телефонных звонков

Я пытаюсь понять, как реализовать этот код из реализации Matlab Spectral Subtraction, которую я использую.

Матальб код:

function Seg=segment(signal,W,SP,Window)

% SEGMENT chops a signal to overlapping windowed segments
% A= SEGMENT(X,W,SP,WIN) returns a matrix which its columns are segmented
% and windowed frames of the input one dimentional signal, X. W is the
% number of samples per window, default value W=256. SP is the shift
% percentage, default value SP=0.4. WIN is the window that is multiplied by
% each segment and its length should be W. the default window is hamming
% window.
% 06-Sep-04
% Esfandiar Zavarehei

if nargin<3
    SP=.4;
end
if nargin<2
    W=256;
end
if nargin<4
    Window=hamming(W);
end
Window=Window(:); %make it a column vector

L=length(signal);
SP=fix(W.*SP);
N=fix((L-W)/SP +1); %number of segments

Index=(repmat(1:W,N,1)+repmat((0:(N-1))'*SP,1,W))';
hw=repmat(Window,1,N);
Seg=signal(Index).*hw;

мой вопрос заключается в том, должен ли я использовать JMathLib для реализации таких функций, как «repmat», которая является функцией матричной репликации, или я должен реализовать ее по-другому. помните, я работаю на смартфонах на базе Android. спасибо Гилад


person Community    schedule 28.04.2012    source источник
comment
Это тривиально реализовать на Java или практически на любом другом языке программирования. Он просто сегментирует поток на фрагменты из W сэмплов и применяет окно Хэмминга к каждому сегменту. Это несколько строк кода на C, Java или чем-то еще.   -  person Paul R    schedule 30.07.2012
comment
У вас уже есть код Java для работы с окнами в одном из ваших других вопросов: окно"> stackoverflow.com/questions/11600515/hanning-von-hann-window/   -  person Paul R    schedule 30.07.2012
comment
я спрашивал про репмат. неважно, спасибо   -  person    schedule 30.07.2012