xcorr函式原理 Matlab xcorr

2021-10-19 23:21:07 字數 2618 閱讀 6440

假設兩個平穩訊號 $\bold$ 和 $\bold$ ,如果 $x\left(t+\tao\right)= y\left(t\right)$ ,則可通過互相關求 $\tao$ 。

clcclear

close

% 實現 xcorr 函式

% 基本設定

t = 1; % [s] 總時間長度

fs = 5000; % [hz] 取樣頻率

t = 0:1/fs:t; % [s] 時間座標

n = length(t); % 訊號個數

% 訊號生成

tm = [ t(1:n) - t , t(2:n) ]; % 相關結果的時間延遲座標軸

td1 = 0.2*t; % x 訊號時間延遲

td2 = 0.3*t; % y 訊號時間延遲

noise = rand(1,2*n); % 生成了兩倍時間 t 長度的雜訊 [0,1]雜訊

x = noise(1+round(td1*fs):n+round(td1*fs))-0.5*ones(1,n);

y = noise(1+round(td2*fs):n+round(td2*fs))-0.5*ones(1,n);

% 求取互相關

z1 = xcorr(x,y); % matlab 自帶函式

[~,i1] = max(abs(z1));

z2 = zeros(1,n); % 自編函式

for n = 1:length(tm)

z2(n) = sum( x( max(1,n-n+1):min(n,n) ).*y( max(1,n-n+1):min(2*n-n,n) ) );

end[~,i2] = max(abs(z2));

%--------------------計算說明--------------------%

% case1: | case2: %

% .n | .2*n-n %

% y: .......... | y: .......... %

% .n-n+1 | .1 %

% .n | .n %

% x: .......... | x: .......... %

% .1 | .n-n+1 %

err = z1-z2; % 兩種演算法的差

% 繪圖

% 比較 conv xcorr

% 例子

a = ones(1,12);

b = 0:4;

c = xcorr(a,b);

d = conv(a,b);

%繪圖subplot(2,2,1)

plot(a,『.-『)

ylim([ -0.1 5.1 ])

xlim([ 0.9 12.1])

title(『a = ones(1,12)『)

xlabel(『n『)

ylabel(『amp『)

subplot(2,2,2)

plot(b,『.-『)

ylim([ -0.1 5.1 ])

xlim([ 0.9 12.1])

title(『b = 0:4『)

xlabel(『n『)

ylabel(『amp『)

subplot(2,2,3)

plot(c,『.-『)

ylim([ -0.1 15.1 ])

xlim([ 0.9 25.1])

title(『xcorr 結果『)

xlabel(『n『)

ylabel(『amp『)

subplot(2,2,4)

plot(d,『.-『)

ylim([ -0.1 15.1 ])

xlim([ 0.9 25.1])

title(『cone 結果『)

xlabel(『n『)

ylabel(『amp『)

suptitle(『conv與xcorr對比『)

Matlab之xcorr函式的解釋

看了 matlab 關於xcorr 的help 文件沒搞清楚什麼意思,只夠看到一篇不錯的文章,通過簡單事例即可了解其應用。輸入的是乙個簡單一維序列 x 1,2 3 第一 預設注釋項,a,b xcorr x 通過該命令計算的結果為 a 3 8 14 8 3 b 2 1 0 1 2.下面介紹一下,該過程...

matlab中的xcorr 自相關函式

自 matlab中用於計算自相關函式的指令是xcorr.比如矩陣a 1 2 3 xcorr a 3.0000 8.0000 14.0000 8.0000 3.0000 自相關函式是訊號間隔的函式,間隔有正負間隔,所以n個長度的訊號,有2n 1個自相關函式值,分別描述的是不同訊號間隔的相似程度。比如,...

Matlab中fft函式的使用與原理

時域抽取基 2fft演算法 decimation in time,dit fft 頻域抽取基 2fft演算法 decimation in freqency,dif fft 序列長度n可表示為合數的fft 演算法 混合基 matlab說明文件 y fft x y fft x,n y fft x,n,d...