盲信道估计基于matlab的LMS盲信道估计QPSK仿真
Posted fpga&matlab
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了盲信道估计基于matlab的LMS盲信道估计QPSK仿真相关的知识,希望对你有一定的参考价值。
目录
1.软件版本
MATLAB2021a
2.核心代码
% CHANNEL EQUALIZATION USING LMS
clc;
clear all;
close all;
M=3000; % number of data samples
T=2000; % number of training symbols
dB=25; % SNR in dB value
L=20; % length for smoothing(L+1)
ChL=5; % length of the channel(ChL+1)
EqD=round((L+ChL)/2); %delay for equalization
Ch=randn(1,ChL+1)+sqrt(-1)*randn(1,ChL+1); % complex channel
Ch=Ch/norm(Ch); % scale the channel with norm
TxS=round(rand(1,M))*2-1; % QPSK transmitted sequence
TxS=TxS+sqrt(-1)*(round(rand(1,M))*2-1);
x=filter(Ch,1,TxS); %channel distortion
n=randn(1,M); %+sqrt(-1)*randn(1,M); %Additive white gaussian noise
n=n/norm(n)*10^(-dB/20)*norm(x); % scale the noise power in accordance with SNR
x=x+n; % received noisy signal
K=M-L; %% Discarding several starting samples for avoiding 0's and negative
X=zeros(L+1,K); % each vector column is a sample
for i=1:K
X(:,i)=x(i+L:-1:i).';
end
%adaptive LMS Equalizer
e=zeros(1,T-10); % initial error
c=zeros(L+1,1); % initial condition
mu=0.001; % step size
for i=1:T-10
e(i)=TxS(i+10+L-EqD)-c'*X(:,i+10); % instant error
c=c+mu*conj(e(i))*X(:,i+10); % update filter or equalizer coefficient
end
sb=c'*X; % recieved symbol estimation
%SER(decision part)
sb1=sb/norm(c); % normalize the output
sb1=sign(real(sb1))+sqrt(-1)*sign(imag(sb1)); %symbol detection
start=7;
sb2=sb1-TxS(start+1:start+length(sb1)); % error detection
SER=length(find(sb2~=0))/length(sb2); % SER calculation
disp(SER);
% plot of transmitted symbols
subplot(2,2,1),
plot(TxS,'*');
grid,title('Input symbols'); xlabel('real part'),ylabel('imaginary part')
axis([-2 2 -2 2])
% plot of received symbols
subplot(2,2,2),
plot(x,'o');
grid, title('Received samples'); xlabel('real part'), ylabel('imaginary part')
% plots of the equalized symbols
subplot(2,2,3),
plot(sb,'o');
grid, title('Equalized symbols'), xlabel('real part'), ylabel('imaginary part')
% convergence
subplot(2,2,4),
plot(abs(e));
grid, title('Convergence'), xlabel('n'), ylabel('error signal')
%%
%IMPLEMENTATION OF BLIND CHANNEL USING CMA OR GODARD ALGORITHM IMPLEMENTED
clc;
clear all;
close all;
N=3000; % number of sample data
dB=25; % Signal to noise ratio(dB)
L=20; % smoothing length L+1
ChL=1; % length of the channel= ChL+1
EqD=round((L+ChL)/2); % channel equalization delay
i=sqrt(-1);
%Ch=randn(1,ChL+1)+sqrt(-1)*randn(1,ChL+1); % complex channel
%Ch=[0.0545+j*0.05 .2832-.1197*j -.7676+.2788*j -.0641-.0576*j .0566-.2275*j .4063-.0739*j];
Ch=[0.8+i*0.1 .9-i*0.2]; %complex channel
Ch=Ch/norm(Ch);% normalize
TxS=round(rand(1,N))*2-1; % QPSK symbols are transmitted symbols
TxS=TxS+sqrt(-1)*(round(rand(1,N))*2-1);
x=filter(Ch,1,TxS); %channel distortion
n=randn(1,N)+sqrt(-1)*randn(1,N); % additive white gaussian noise (complex)
n=n/norm(n)*10^(-dB/20)*norm(x); % scale noise power
x1=x+n; % received noisy signal
...................
3.操作步骤与仿真结论
4.参考文献
[1]陈国军, 胡捍英. OFDM系统自适应盲信道估计新方法[J]. 信号处理, 2013, 29(6):5.
D228
5.完整源码获得方式
方式1:微信或者QQ联系博主
方式2:订阅MATLAB/FPGA教程,免费获得教程案例以及任意2份完整源码
以上是关于盲信道估计基于matlab的LMS盲信道估计QPSK仿真的主要内容,如果未能解决你的问题,请参考以下文章
信道估计基于matlab最小均方 (LMS) 算法线性信道估计含Matlab源码 2311期
盲解调基于频率和滤波器参数估计的FH-GFSK调制信号盲解调算法matlab仿真
信道估计LS/MMSE信道估计,CS信道估计的MATLAB仿真