matlab自相关函数编写
时间: 2024-03-14 07:41:50 浏览: 66
在MATLAB中,可以使用自相关函数(Autocorrelation Function)来分析信号或时间序列的自相关性。自相关函数衡量了信号在不同时间点上的相似程度。
下面是一个简单的MATLAB代码示例,用于计算信号的自相关函数:
```matlab
function autocorr = my_autocorr(signal)
N = length(signal);
autocorr = zeros(1, N);
for lag = 0:N-1
for n = 1:N-lag
autocorr(lag+1) = autocorr(lag+1) + signal(n) * signal(n+lag);
end
end
autocorr = autocorr / N;
end
```
这个函数接受一个信号作为输入,并返回一个与输入信号长度相同的自相关函数。它使用两个嵌套的循环来计算每个滞后(lag)下的自相关值。最后,将结果除以信号长度以进行归一化。
使用这个函数,你可以计算任何信号的自相关函数。例如,假设你有一个包含100个样本的信号`x`,你可以这样调用函数并绘制结果:
```matlab
x = randn(1, 100); % 生成一个包含100个随机样本的信号
autocorr = my_autocorr(x); % 计算自相关函数
% 绘制自相关函数
lag = 0:length(autocorr)-1;
plot(lag, autocorr);
xlabel('Lag');
ylabel('Autocorrelation');
title('Autocorrelation Function');
```
这样,你就可以得到信号的自相关函数图像。