bss_make_lags.m

来自「一种bss盲源信号分离的工具包 可以用于盲信号的提取」· M 代码 · 共 37 行

M
37
字号
function S_lags=bss_make_lags(S,L);

% create a matrix containing lagged versions of some signal(s).
%
% Usage: S_lags=bss_make_lags(S,L)
%
% Input:
%   - S: n x T matrix containing the input signal(s),
%   - L: number of lagged versions of the signal(s).
%
% Output:
%   - S_lags: n*L x T matrix containing lagged versions of S, S_lags(t)=
%   [s1(t) ; s1(t-1) ; ...; s1(t-L+1); ... ; sn(t) ; sn(t-1) ; ...; sn(t-L+1)]
%
% WARNINGS:
%   * S_lags is zero-padded where necessary,
%   * We use the conventions make_lags(S,0)=makes_lags(S,1)=S.
%
% Developers:  - Cedric Fevotte (cf269@cam.ac.uk) - Emmanuel Vincent
% (vincent@ircam.fr) - Remi Gribonval (remi.gribonval@irisa.fr)

[n,T]=size(S);

if L==0
    S_lags=S;
else
    
    N=n*L;
    S_lags=zeros(N,T);
    for i=1:N
        q=floor((i-1)/L);
        r=mod(i-1,L);
        B=zeros(1,r+1); B(end)=1;
        S_lags(i,:)=filter(B,1,S(q+1,:));    
    end
    
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?