Fc=10; %载频
Fs=100; %系统采样频率
Fd=1; %码速率
N=Fs/Fd;
df=10;
numSymb=25;%进行仿真的信息代码个数
M=2;
SNRpBit=60;%信噪比
SNR=SNRpBit/log2(M);
numPlot=25; %产生25个二进制随机码
x=randsrc(numSymb,1,[0:M-1]);%产生25个二进制随机码figure(1)
stem([0:numPlot-1],x(1:numPlot),'bx');
title('二进制随机序列')
xlabel('Time');
ylabel('Amplitude');
b=zeros(1,26); %全零数组
b(2)=xor(b(1),x(1)) %或非
for n=2:25
b(n+1)=xor(x(n),b(n));
end
for n=1:25
x(n)=b(n+1);
end
figure(2)
stem([0:numPlot-1],x(1:numPlot),'bx');
title('差分编码')
xlabel('Time');
ylabel('Amplitude');
y=dmod(x,Fc,Fd,Fs,'psk',M,df);
numModPlot=numPlot*Fs;
t=[0:numModPlot-1]./Fs;
figure(3)
plot(t,y(1:length(t)),'b-');
axis([min(t) 2 -1.5 1.5]); %x轴y轴范围
title('调制信号')
xlabel('Time');
ylabel('Amplitude');
seed=[12345 54321];
randn('state',seed(2)); %产生正态分布的随机数或矩阵的函数y=awgn(y,SNR-10*log10(0.5)-10*log10(N),'measured',[],'dB');