blindequalizer.m

来自「Blind Equalizer 的演算法主要是利用CMA及 LMS 的配合」· M 代码 · 共 54 行

M
54
字号
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%   Blind Equalizer Simulation   % 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc;clear;close all;
%%== System Setup ==%%
load channel.mat;
channel=channel/norm(channel);
load srrc18.mat;
srrc=h/norm(h);

fb=5e6;       % 5M Hz
fs=4*fb;      % 20M Hz
fc=fb;
%%== 64 QAM Transmitter ==%%

%-- 64 QAM Symbol Generation
nums=20000;
bitstream=randint(1,nums,64);              
qam64=qammod(bitstream,64);
%-- 4 times oversampling SRRC filtering
I4=zeros(1,4*nums);
Q4=zeros(1,4*nums);
I4(1:4:4*nums)=real(qam64);
Q4(1:4:4*nums)=imag(qam64);
I4tx=filter(srrc,1,I4);
Q4tx=filter(srrc,1,Q4);
tx=I4tx+j*Q4tx;
%%-- pass the channel
tx_ch=filter(channel,1,tx);
%%-- Baseband Carrier Offset Modulation  
phase_off=pi/6;            
df=100e3;      % 100 KHz;
[rnum cnum]=size(I4tx);
t=[1:cnum]/fs;
tx_off=tx_ch.*exp(j*(2*pi*df*t+phase_off));
%%-- add AWGN
snr=20;
r_amp=sqrt(sum(tx_off.^2)/length(tx_off));
noise_amp=r_amp/10^(snr/20);
tx_awgn=tx_off+randn*noise_amp;

%%== 64 QAM receiver ==%%

%%--  Matched Filtering
rx=filter(srrc,1,tx_awgn);

%%-- Downsample 2
rx2=downsample(rx,2);
rx2=rx2.';
%%---------------%%
%      CMA        %
%%---------------%%
%%-- Parameter Setup
step=2^-23;%23

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?