哪位大侠给指导下,我这个8psk瑞利信道的仿真图怎么不对呢
clear all;
clc;
tic;
%--------------------------------------------------------------------------
% 定义参数
n = 10000; % 符号数
Fs = 2e4; % 输入符号速率
FD = 100; % 多普勒频移
nsamp = 8; % 过采样数
F_nsamp = nsamp*Fs; % 采样后速率
Ts = 1/F_nsamp; % 采样后符号持续时间
filtorder = 256; % 滤波器阶数
delay = filtorder/(nsamp*2); % 滤波器延迟
rolloff = 0.25; % 升余弦滚降系数
M = 8; % 8进制
k = log2(M);
EbNo = [0:13]; %设定EbNo范围
rt=zeros(1,length(EbNo)); %初始化误码率向量
%--------------------------------------------------------------------------
% 产生随机信息
x = randint(n,1,M); %产生随机符号.
%--------------------------------------------------------------------------
% 产生一个升余弦滚降滤波器
rrcfilter = rcosine(Fs,F_nsamp,'fir/sqrt',rolloff,delay);
%--------------------------------------------------------------------------
% 进行8psk调制
y=modulate(modem.pskmod('M', 8,'PhaseOffset', 0,'SymbolOrder', 'gray', 'INPUTTYPE', 'INTEGER'),x);
%--------------------------------------------------------------------------
% 脉冲成形.
ytx = rcosflt(y,Fs,F_nsamp,'filter',rrcfilter);
%--------------------------------------------------------------------------
% 通过瑞利信道
c=rayleighchan(Ts,FD);
y_ray=filter(c,ytx);
%--------------------------------------------------------------------------
% 加入加性高斯白噪声
snr = EbNo + 10*log10(k) - 10*log10(nsamp);
for jj = 1:length(snr)
ynoisy = awgn(y_ray,snr(jj),'measured');
%--------------------------------------------------------------------------
% 接收滤波
yrx = rcosflt(ynoisy,Fs,F_nsamp,'Fs/filter',rrcfilter);
yrx = downsample(yrx,nsamp); % 下采样
yrx = yrx(2*delay+1:end-2*delay); % 去除延迟
%--------------------------------------------------------------------------
% 解调
demodObj = modem.pskdemod('M', 8, 'SymbolOrder', 'Gray', 'OutputType', 'INTEGER');
z = demodulate(demodObj,yrx);
%--------------------------------------------------------------------------
% 计算差错率
[num,rt(jj)] = biterr(x,z);
rt(jj)
end
lz = berfading(EbNo, 'psk', M, 1);%理论曲线
hold on; semilogy(EbNo,lz,'-r',EbNo,rt,'b.');
title('Comparing Theoretical and Empirical Error Rates');
hold off;