# matlab upsample and xcorr函数用法

upsample

Increase sample rate by integer factor collapse all in page
Syntax
y = upsample(x,n)
y = upsample(x,n,phase)
Description
example
y = upsample(x,n) increases the sample rate of x by inserting n – 1 zeros between samples. If x is a matrix, the function treats each column as a separate sequence.
y = upsample(x,n,phase) specifies the number of samples by which to offset the upsampled sequence.
Examples
collapse all
Increase Sample Rates
Open Live Script
Increase the sample rate of a sequence by a factor of 3.

x = [1 2 3 4];
y = upsample(x,3)
y = 1×12

1     0     0     2     0     0     3     0     0     4     0     0

Increase the sample rate of the sequence by a factor of 3 and add a phase offset of 2.

x = [1 2 3 4];
y = upsample(x,3,2)
y = 1×12

0     0     1     0     0     2     0     0     3     0     0     4

x1= [1 2 3 4];
y = upsample(x,3,1)
y = 1×12

0     1     0     0     2     0     0     3     0     0     4

Increase the sample rate of a matrix by a factor of 3.

x = [1 2;
3 4;
5 6];
y = upsample(x,3)
y = 9×2

1     2
0     0
0     0
3     4
0     0
0     0
5     6
0     0
0     0

Input Arguments
collapse all
x — Input array
vector | matrix
Input array, specified as a vector or matrix. If x is a matrix, the function treats the columns as independent channels.

Example: cos(pi/4*(0:159)) + randn(1,160) specifies a sinusoid embedded in white Gaussian noise.

Example: cos(pi./[4;2]*(0:159))' + randn(160,2) specifies a two-channel noisy sinusoid.

Data Types: single | double
Complex Number Support: Yes
n — Upsampling factor
positive integer
Upsampling factor, specified as a positive integer.

Data Types: single | double
phase — Offset
0 (default) | positive integer
Offset, specified as a positive integer from 0 to n – 1.

Data Types: single | double
Output Arguments
collapse all
y — Upsampled array
vector | matrix
Upsampled array, returned as a vector or matrix. y has x × n samples.

Matlab中用于计算自相关函数的指令是xcorr.比如矩阵A=[1 2 3];

xcorr(A)=3.0000 8.0000 14.0000 8.0000 3.0000

c = xcorr(x,y)
c = xcorr(x)
c = xcorr(x,y,'option')
c = xcorr(x,'option')
c = xcorr(x,y,maxlags)
c = xcorr(x,maxlags)
c = xcorr(x,y,maxlags,'option')
c = xcorr(x,maxlags,'option')
[c,lags] = xcorr(...)

xcorr来估计随机过程中的互相关序列，自相关是xcorr的一个特例。

x(n)和y(n)为统计的随机序列，-∞
c = xcorr(x,y) 返回矢量长度为2*N-1互相关函数序列，其中x和y的矢量长度均为N，如果x和y的长度不一样，则在短的序列后补零直到两者长度相等。

c = xcorr(x) 为矢量x的自相关估计；
c = xcorr(x,y,'option') 为有正规化选项的互相关计算；其中选项为
"biased"为有偏的互相关函数估计；
"unbiased"为无偏的互相关函数估计；
"coeff"为0延时的正规化序列的自相关计算；
"none"为原始的互相关计算；

c= xcorr(x,'option')特指以上某个选项的自相关估计。
c = xcorr(x,y,maxlags) 返回一个延迟范围在[-maxlags,maxlags]的互相关函数序列，输出c的程度为2*maxlags-1.
c = xcorr(x,maxlags) 返回一个延迟范围在[-maxlags,maxlags]的自相关函数序列，输出c的程度为2*maxlags-1.
c = xcorr(x,y,maxlags,'option') 同时指定maxlags和option的互相关计算.
c = xcorr(x,maxlags,'option') 同时指定maxlags和option的自相关计算.
[c,lags] = xcorr(...)返回一个在c进行相关估计的延迟矢量lag，其范围为[-maxlags:maxlags],当maxlags没有指定时，其范围为[-N+1,N-1]

ww = randn(1000,1);
[c_ww,lags] = xcorr(ww,10,'coeff');
stem(lags,c_ww)

) 相关程度与相关函数的取值有什么联系？

0.00-±0.30 微相关
±0.30-±0.50 实相关
±0.50-±0.80 显著相关
±0.80-±1.00 高度相关
matlab计算自相关函数autocorr和xcorr有什么不一样的？xcorr是没有将均值减掉做的相关，autocorr则是减掉了均值。

1、当b（1）=-2时，计算a（1）时只用到一组数据——（3，1）注意顺序，只有这两个数据的序号相减（后面数据的序号减去前面的）满足b=-2，因此a（1）的计算公式为：3*1=3

2、当b（2）=-1时，计算a（2）时用到两组数据——（2，1）和（3，2），这两组数据的序号相减（后面数据的序号减去前面的）满足b=-1，因此a（2）的计算公式为：2*1+3*2=8

3、当b（3）=0时，计算a（3）时用到三组数据——（1，1）、（2，2）、（3，3），这三组数据的序号相减（后面数据的序号减去前面的）满足b=0，因此a（3）的计算公式为：1*1+2*2+3*3=14

4、当b（4）=1时，计算a（4）时用到两组数据——（1，2）和（2，3），（读者请对比和情况2的区别），这两组数据的序号相减（后面数据的序号减去前面的）满足b=1，因此a（4）的计算公式为：1*2+2*3=8

5、当b（5）=2时，计算a（4）时用到一组数据——（1，3），（读者请对比和情况1的区别），这两组数据的序号相减（后面数据的序号减去前面的）满足b=2，因此a（4）的计算公式为：1*3=3

1、当b（1）=-2时，计算a（1）时只用到一组数据（记N=1）——（3，1）注意顺序，只有这两个数据的序号相减（后面数据的序号减去前面的）满足b=-2，因此a（1）的计算公式为：（3*1）/1=3

2、当b（2）=-1时，计算a（2）时用到两组数据（记N=2）——（2，1）和（3，2），这两组数据的序号相减（后面数据的序号减去前面的）满足b=-1，因此a（2）的计算公式为：（2*1+3*2）/2=4

3、当b（3）=0时，计算a（3）时用到三组数据（记N=3）——（1，1）、（2，2）、（3，3），这三组数据的序号相减（后面数据的序号减去前面的）满足b=0，因此a（3）的计算公式为：（1*1+2*2+3*3）/3=4.6667

4、当b（4）=1时，计算a（4）时用到两组数据（记N=2）——（1，2）和（2，3），（读者请对比和情况2的区别），这两组数据的序号相减（后面数据的序号减去前面的）满足b=1，因此a（4）的计算公式为：（1*2+2*3）/2=4

5、当b（5）=2时，计算a（4）时用到一组数据（记N=1）——（1，3），（读者请对比和情况1的区别），这两组数据的序号相减（后面数据的序号减去前面的）满足b=2，因此a（4）的计算公式为：（1*3）/1=3

1、当b（1）=-2时，计算a（1）时只用到一组数据——（3，1）注意顺序，只有这两个数据的序号相减（后面数据的序号减去前面的）满足b=-2，因此a（1）的计算公式为：（3*1）/M=1

2、当b（2）=-1时，计算a（2）时用到两组数据——（2，1）和（3，2），这两组数据的序号相减（后面数据的序号减去前面的）满足b=-1，因此a（2）的计算公式为：（2*1+3*2）/M=2.6667

3、当b（3）=0时，计算a（3）时用到三组数据——（1，1）、（2，2）、（3，3），这三组数据的序号相减（后面数据的序号减去前面的）满足b=0，因此a（3）的计算公式为：（1*1+2*2+3*3）/M=4.6667

4、当b（4）=1时，计算a（4）时用到两组数据——（1，2）和（2，3），（读者请对比和情况2的区别），这两组数据的序号相减（后面数据的序号减去前面的）满足b=1，因此a（4）的计算公式为：（1*2+2*3）/M=2.6667

5、当b（5）=2时，计算a（4）时用到一组数据——（1，3），（读者请对比和情况1的区别），这两组数据的序号相减（后面数据的序号减去前面的）满足b=2，因此a（4）的计算公式为：（1*3）/M=1

10-31 2万+

03-18 3万+
09-30 4万+
10-11 4580
11-06 4429
06-16 1278
04-19 855
11-03 2万+
02-26 6926
08-11 244
03-24 3万+
07-10 1万+
11-07 1万+
07-03 15万+