因此通过上述分析我们可以通过求解循环自相关函数求解出OFDM 信号的有效数据长度 和符号总长度 ,因此可以间接的求出OFDM信号的子载波间隔 和循环前缀的长度 。
由循环自相关函数的特点可知,通过估计循环频率
a=0
截面上次峰值的位置可以估计出信号的有效数据长度 ,通过搜索 截面上的峰值间隔可以估计出信号的符号总长度。但是在求解过程中不需要直接去求解循环自相关,增加不必要的运算量。只需要求解 和
a=0
两个截面即可。
首先通过可变延时自相关的方法求解出
a=0
的截面估计出有效数据长度 然后根据令可变延时 ,对 做FFT变换估计出符号总长度 ,进而可以算出子载波间隔和循环前缀的长度。
给出matlab代码如下:
function [Tu,Ts] = auto_xcorr(data, P, xcorr_len, N,t,K)
%*************************************************************************
%功能:计算发送数据或接收数据自相关
%data:输入数据
%P:循环周期
%N:OFDM符号数
%xcorr_len:自相关长度,以OFDM符号为单位
%K=1时绘制图形
%Rx自相关函数
%*************************************************************************
kk = xcorr_len+2 ;
xcorr_len = xcorr_len*P;
Rx = zeros(xcorr_len, 2*P);
data1=[zeros(1,P),data,zeros(1,P)];
for i = 1 : N-kk+1
for tao = 1-P : P
for n = 1 : xcorr_len
Rx(n,tao+P) = Rx(n,tao+P) + data1(P*(i-1)+n+P)*conj(data1(P*(i-1)+n+tao+P));
Rx = Rx./(N-kk+1);
R_tao =zeros(1,length(Rx(1,:)));
for i=1:length(Rx(:,1))
R_tao= R_tao+Rx(i,:);
R_tao= abs(R_tao)/length(Rx(:,1));
if K==1
figure
stem ((1-P)*t :t:( P)*t ,R_tao); %P*t是将由采样点数表示的有效数据长度变为由时间表示的
xlabel('delay/s');
ylabel('amplitute');
title('短波可变延时自相关')
figure
stem ((1-P) :( P) ,R_tao); %P*t是将由采样点数表示的有效数据长度变为由时间表示的
xlabel('delay/s');
ylabel('amplitute');
title('基带可变延时自相关')
%********************************************
%取有效数据长度
%********************************************
abc=sort( R_tao(1,1:end/2)); %按升序排序
Z=length(abc);
[as1 ,Tu1] =find( R_tao(1,1:end/2)==abc(1,Z-1));%取峰值高度为第二高的峰值对应坐标
Tu=(length(R_tao)/2-Tu1)*t; %为信号的有效数据长度
%********************************************
%取数据的总长度
%********************************************
sigma0 = 6; %观测数据的长度因子
L_fft=sigma0*P; %观测数据的长度,即fft的长度
RR = zeros(xcorr_len, L_fft);
data111=[zeros(1,P),data,zeros(1,P)]; %将观测的数据长度延长,避免求自相关时超出长度
for i = 1 : N-4
for k=1:L_fft
RR(i,k) =data111(P*(i-1)+k)*conj(data111(P*(i-1)+k+length(R_tao)/2-Tu1));
RRR_tao =zeros(1,length(RR(1,:)));
for i=1:length(RR(:,1))
RRR_tao= RRR_tao+RR(i,:);
RRR_tao= abs(RRR_tao)/length(RR(:,1));
RRR_T=ifft(RRR_tao);
RRR_fft= abs(RRR_T(1,1:20*sigma0));
if K==1
figure
LL=t:t:20*sigma0*t;
stem(LL,RRR_fft);
title('短波固定延时自相关的IFFT')
figure
stem(RRR_fft);
title('基带固定延时自相关的IFFT')
a=sort(RRR_fft); %按升序排序
Z=length(a);
[a1 ,T1] =find(RRR_fft==a(1,Z));%取峰值高度为第一高的峰值对应坐标
[a2 ,T2] =find(RRR_fft==a(1,Z-1));%取峰值高度为第二高的峰值对应坐标
[a3 ,T3] =find(RRR_fft==a(1,Z-2));%取峰值高度为第三高的峰值对应坐标
Ts1 = abs(T2-T1);
Ts2 = abs(T3-T2);
Ts3 = abs(T3-T1);
Tss = [Ts1 Ts2 Ts3];
TT = sort(Tss); %按升序排序取间隔最小值
Ts= L_fft/TT(1)*t; %为信号的有效数据长度
给出参考的结果如下:
对接收信号的自相关函数进行FFT变换后得到OFDM信号的循环自相关函数 因此通过上述分析我们可以通过求解循环自相关函数求解出OFDM 信号的有效数据长度 和符号总长度 ,因此可以间接的求出OFDM信号的子载波间隔 和循环前缀的长度 。 由循环自相关函数的特点可知,通过估计循环频率a=0截面上次峰值的位置可以估计出信号的有效数据长...
R^xα(f)≡0\hat R_x^\alpha (f) \equiv 0R^xα(f)≡0,对∀α≠0,R^x(τ)≠0\forall \alpha \ne 0,{\hat R_x}(\tau ) \ne 0∀α=0,R^x(τ)=0,则x(t)x(t)x(t)为纯平稳
信号
。
R^xα(f)≠0\hat R_x^\alpha (f) \ne 0R^xα(f)=0,当α=mT0\alpha = \frac{m}{{{T_0}}}α=T0m,则x(t)x(t)x(t)具备纯
对于
matlab
我是新手,程序也是编写好长时间,总想写篇文章纪念下,所以有些地方可能没有说明白,有需要在修改。
目的:利用
自相关
在接受来的数据中找到与本地数据相同的地方,利用的是
自相关函数
在原点位置的值最大。既然是在
matlab
中写程序为啥不用
自相关函数
呢?因为这个程序以后可能会在单片机上
实现
,所以先用
matlab
实验下。
fs=200000;%抽样频率
B=10000;
f0=20000;%LFM
信号
的起始频率
n=2048;%采样点个数
T1=n/fs;%在采样频...
R^xα(f)≡0\hat R_x^\alpha (f) \equiv 0R^xα(f)≡0,对∀α≠0,R^x(τ)≠0\forall \alpha \ne 0,{\hat R_x}(\tau ) \ne 0∀α=0,R^x(τ)=0,则x(t)x(t)x(t)为纯平稳
信号
。
R^xα(f)≠0\hat R_x^\alpha (f) \ne 0R^xα(f)=0,当α=mT0\alpha = \frac{m}{{{T_0}}}α=T0m,则x(t)x(t)x(t)具备纯
BPSK实
信号
表达式可以写为
r(t)=y(t)+n(t)r(t) = y(t) + n(t)r(t)=y(t)+n(t)
=s(t)p(t)+n(t)= s(t)p(t) + n(t)=s(t)p(t)+n(t)
=∑n=−∞∞a(nT)q(t−nT−t0)cos(2πf0t+θ) + n(t)= \sum\limits_{n = - \infty }^\infty {a(nT)q(t - nT - {t_0})} \cos (
OFDM
(正交频分复用)是一种多载波
信号
传输技术,通过将高速数据流分成多个低速子流,并在不同的载波上传输,以
实现
高速数据传输和抗干扰性。全1信息
OFDM
一体化
信号
是指在所有传输的子载波上都传输相同的全1
信号
,这种
信号
通常用于检测
OFDM
系统的通道性能。
在
Matlab
中,可以使用ifft函数生成
OFDM
信号
,其中每个子载波的频率与其索引成比例关系,即f(k) = k*Δf,其中Δf是子载波间隔。在生成全1信息
OFDM
信号
后,需要计算其模糊函数以了解信道对
信号
的影响。
OFDM
信号
的模糊函数是指信道传输过程中
信号
的频率响应,它可以使用fft函数来计算信噪比(SNR)和信道扭曲之间的关系。可以通过在发送端添加高斯白噪声
信号
并计算接收端
信号
与发送端
信号
之间的误差来模拟信噪比和信道扭曲对
信号
的影响。通过比较发送和接收
信号
的功率谱密度和相位,可以计算
OFDM
信号
在信道中传输时的模糊函数,从而了解信道间隔和
OFDM
带宽之间的关系。
总之,通过在
Matlab
中使用ifft和fft函数,我们可以生成并计算全1信息
OFDM
一体化
信号
的模糊函数,以了解信道扭曲和信噪比对
OFDM
系统的影响。