Converting 4 QAM to 16 QAM - 16 QAM produces error when generating signal
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
clear all close all clc T=10000; dB=40; % SNR value(dB)
N=12; Lh=5; M=2; % fractional (Ts/M)
h=randn(M,Lh+1)+sqrt(-1)*randn(M,Lh+1); for i=1:M, h(i,:)=h(i,:)/norm(h(i,:)); end
s=round(rand(1,T))*2-1; % QPSK or 4 QAM symbol sequence
s=s+sqrt(-1)*(round(rand(1,T))*2-1);
% Produce a noisy signal x=zeros(M,T); SNR=zeros(1,M); for i=1:M x(i,:)=filter(h(i,:),1,s); vn=randn(1,T)+sqrt(-1)*randn(1,T); vn=vn/norm(vn)*10^(-dB/20)*norm(x(i,:)); SNR(i)=20*log10(norm(x(i,:))/norm(vn)); x(i,:)=x(i,:)+vn; end SNR=SNR;
Lp=T-N; X=zeros((N+1)*M,Lp); for i=1:Lp for j=1:M X((j-1)*(N+1)+1:j*(N+1),i)=x(j, i+N:-1:i).'; end end
e=zeros(1,Lp); f=zeros((N+1)*M,1); f(N*M/2)=1; R2=2.0; mu=0.0012; for i=1:Lp e(i)=abs(f'*X(:,i))^2-R2; % Momentary error f=f-mu*2*e(i)*X(:,i)*X(:,i)'*f; % Equalizer update equation end
sb=f'*X;
figure
plot(s,'s');
grid,title('Gonderilen semboller'); xlabel('Reel'),ylabel('Sanal')
axis([-2 2 -2 2])
figure
plot(x,'o'); % kanal ve gürültü ile bozulmuþ alýnan sembollerin çizimi
grid, title('Alinan ornekler'); xlabel('Reel'), ylabel('Sanal')
figure
plot(sb,'o'); % denkleþtirilen sembollerin çizimi
grid, title('Denklestirilen Semboller'), xlabel('Reel'), ylabel('Sanal')
figure
plot(abs(e)/100); % show the convergence
%semilogy(abs(e)/100,'b-p');
grid, title('Kor Ogrenme Egrisi'), xlabel('Ogrenme Adimi'), ylabel('MSE')
0 Kommentare
Antworten (0)
Siehe auch
Kategorien
Mehr zu QAM finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!