最近在做关于使用Matlab编程实现小m序列和Gold序列的实验,下面就说说关于这次实验室的一些收获:
1. 关于使用DFT实现线性卷积。
2. 关于自相关函数和互相关函数的Matlab计算。
3. 关于小m序列和Gold序列的一些基本概念
一、学工的如果不知道如何使用DFT来求线性卷积和这种思想的重要性,他就白学了(小波老师原话)
要求:t[n]=f(n)*g(n),把g(n)翻转,向右移动n格与f(n)的乘积和。
假设f(n)长度为L,g(n)长度为P,则卷积后的有效点数为L+P-1,其余为全零。
由傅里叶变换定理:时域卷积等效于频域乘积,即
T(e^jw)=F(e^jw)G(e^jw)。用w=(2*pi/N)k,代替可得:T~[k]=F~[k]G~[k],取k=0-N-1则可得到T[k]=F[k]G[k]。
一个“周期序列”的DFS相当于对“一个周期”的序列傅里叶变换做频域抽样w=(2*pi/N)k,且抽样后满足x~[n]=∑x[n-rN]。N为周期。
由于DFS无论时域还是频域都可以用N个点表示所有信息,所以定义DFT,只取时域N个点并对应频域N个点,借助DFS便可相互恢复。方法为取x~[n]从0到N-1即可。
计算F[k]G[k],首先要保证N>=L+P-1,则将f(n)、g(n)补全至长度N,补零。
二、自相关函数:定义f(t)*f(-t) ∫f(t)f(t-α)
互相关函数:定义f(t)*g(-t) ∫f(t)g(t-α)
MATLAB实现:例如A=