我是靠谱客的博主 苗条紫菜,最近开发中收集的这篇文章主要介绍ZC序列 DMRS Hls 仿真学习,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

clc;clear;close all;
%% 0、fft
test = fft(ones(1,10));%[10,0....0]
%% 1、对称函数
% 若函数y=f(x)关于直线x=a对称(当a=0时即关于y轴对称),则f(a+x)=f(a−x),反之亦成立
t = 0:0.1:2*pi;
figcnt=0;
f = sinc(t);
figcnt = figcnt+1;
figure(figcnt);
plot(t,f,'r');
grid minor;
hold on;
t1=-1*t;%%%对称函数的方法!!
f1 = sinc(t1);
plot(t1,f1,'g');
hold off;
%% 2、zc序列相关性仿真
%------------------zc序列产生------------------
% prach parameter
L_RA = 839;
u = 20;
u2 = 21;
x_u = zeros(1,L_RA);
x_u2 = zeros(1,L_RA);
Cv = 100;
%zc 序列
for i = 0:1:L_RA-1
x_u(i+1) = exp(-1i*pi*u*i*(i+1)/L_RA);
end
%不同根序列
for i = 0:1:L_RA-1
x_u2(i+1) = exp(-1i*pi*u2*i*(i+1)/L_RA);
end
%相同根序列不同循环移位
x_uv = zeros(1,L_RA);
for i = 0:1:L_RA-1
x_uv(i+1) = x_u(mod(i+Cv,L_RA)+1);%序列值不变,进行了循环移位(0点位置变了)
end
%加噪声
x_u = x_u + randn(1,length(x_u));
x_uv = x_uv + randn(1,length(x_uv));
x_u2 = x_u2 + randn(1,length(x_u2));
%------------------序列运算------------------
% zc序列fft仍然是zc序列.上面的序列即可认为是时域,又可认为是频域:
%
1、看做时域时,可以直接在时域做相关,也可根据相关->卷积<->共轭乘->ifft求相关。
%
2、看做频域时,直接共轭乘->ifft求相关
% 相关,最终看的是时域。
%-------1、把上面的序列看做时域
%时域->频域->共轭乘->ifft
f1 = fft(x_u).* conj(fft(x_u+x_uv));%频域侧计算时,先转到频域。多UE
f1_ifft = ifft(f1);
figcnt = figcnt+1;
figure(figcnt);
subplot(4,1,1);
plot((0:length(f1_ifft)-1), abs(f1_ifft), 'b');
xlabel('Time');ylabel('Amplitude');title('时域数据,转频域求相关');
grid minor;
%时域直接相关
f2 = xcorr(x_u,x_u+x_uv);
subplot(4,1,2);
plot((0:length(f2)-1), abs(f2), 'g');
xlabel('Time');ylabel('Amplitude');title('时域数据,直接求相关');
grid minor;
%-------2、把上面的序列看做频域
f3 = x_u.* conj(x_u);%频域侧计算时,先转到频域。多UE
subplot(4,1,3);
plot((0:length(f3)-1), abs(ifft(f3)), 'r');
xlabel('Time');ylabel('Amplitude');title('频域数据,共轭乘后ifft求相关');
grid minor
%-------不同序列,取其中一种情况:看做时域
f4 = fft(x_u).*conj(fft(x_u2));
f4_ifft = ifft(f4);
subplot(4,1,4);
plot((0:length(f4_ifft)-1), abs(f4_ifft), 'r');
xlabel('Time');ylabel('Amplitude');title('不同μ时域数据,转频域求相关');
grid minor
%% 3、LS
A = 1;%信道幅度
k = 0:0.01:2;%频域
X = A*exp(1i*2*pi.*k);%本地DMRS=发端DMRS
N = randn(1,length(k));%noise
Y = X + N;
Hls = Y.*conj(X);%如果没有噪声的话,结果全1
figcnt = figcnt+1;
figure(figcnt);
plot((0:length(Hls)-1),abs(ifft(Hls)),'r');
xlabel('Time');ylabel('Amplitude');title('Hls');
grid minor;
hold on;
t_corr=xcorr(ifft(Y),ifft(X));
plot((0:length(t_corr)-1),abs(t_corr),'g');
hold off;

最后

以上就是苗条紫菜为你收集整理的ZC序列 DMRS Hls 仿真学习的全部内容,希望文章能够帮你解决ZC序列 DMRS Hls 仿真学习所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部