⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ip_07_10.m

📁 现代通信系统书籍仿真程序
💻 M
字号:
% MATLAB script for Illustrative Problem 10, Chapter 7.
echo on
K=10;N=2*K;T=100;variance=1;
noise=sqrt(variance)*randn(1,N);
a=rand(1,36);
a=sign(a-0.5);
b=reshape(a,9,4);
% Generate the 16QAM points
XXX=2*b(:,1)+b(:,2)+j*(2*b(:,3)+b(:,4));
XX=XXX';
X=[0 XX 0 conj(XX(9:-1:1))];
x=zeros(1,N);
for n=0:N-1
  for k=0:N-1
    x(n+1)=x(n+1)+1/sqrt(N)*X(k+1)*exp(j*2*pi*n*k/N);
    echo off
  end
end
echo on
r=x+noise;
Y=zeros(1,10);
for k=1:9
  for n=0:N-1
    Y(1,k+1)=Y(1,k+1)+1/sqrt(N)*r(n+1)*exp(-j*2*pi*k*n/N);
    echo off
  end
end
echo on
% Detect the nearest neighbor in the 16QAM constellation
for k=1:9
  if real(Y(1,k+1))>0
    if real(Y(1,k+1))>2
      Z(1,k+1)=3;
    else
      Z(1,k+1)=1;
    end
  else
    if real(Y(1,k+1))<-2
      Z(1,k+1)=-3;
    else
      Z(1,k+1)=-1;
    end
  end
  if imag(Y(1,k+1))>0
    if imag(Y(1,k+1))>2
      Z(1,k+1)=Z(1,k+1)+3*j;
    else
      Z(1,k+1)=Z(1,k+1)+j;
    end
  else
    if imag(Y(1,k+1))<-2
      Z(1,k+1)=Z(1,k+1)-3*j;
    else
      Z(1,k+1)=Z(1,k+1)-j;
    end
  end
  echo off
end
echo on
error=max(size(find(Z(1,2:10)-X(1,2:10))));

⌨️ 快捷键说明

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