|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
clc
clear
tic;
fd=1;fs=3;flag1=0;flag2=0;suma=0;sumb=0;
k=10000;er=1;M=4;snr_db=0:12;snr1_db=0:0.1:12;
for i=1:length(snr_db)
flag1=0;flag2=0;
for n=1:k
suma=0;sumb=0;
matrix=randint(1071,1,2);
syn=[1 1 1 0 0 1 0];
matrix_syn=[syn,matrix']';
modata=dmodce(matrix_syn,fd,fs,'psk',M);
modata_nois=awgn(modata,snr_db(i));
y=ddemodce(modata_nois,fd,fs,'psk',M);
suma=y(1)+y(2)+y(3)+~y(4)+~y(5)+y(6)+~y(7);
if suma>=7;
flag1=flag1+1;
else flag2=flag2+1;
end
end
pm(i)=flag2/k; %实际漏同步概率
end
for j=1:length(snr1_db)
eb_n0=10^(snr1_db(j)/10);
pm_theory(j)=2*qfunct(sqrt(2*log2(M)*eb_n0)*sin(pi/M));%理论误符号率
per(j)=pep(pm_theory(j),13,er); %理论漏同步概率
end
semilogy(snr_db,pm,'*',snr1_db,per);
xlabel('信噪比/dB');
ylabel('漏同步概率');
legend('实际漏同步概率','理论漏同步概率');
toc
这是别人留下的一个程序,现在找不到他,我有几个地方不明白,请教各位一下,1.取1071位是什么意思呢,就算加上7位巴克码,是1078位,说是5个语音帧插入一个同步帧,可是语音帧不是137bit吗?那同步帧又是多少位呢?2.这个程序的信噪比就是设计成等差数列吗?3.if suma>=7,这里为什么是7呢,下面理论漏同步概率中er取的是1,既是允许码组中错误码元的最大数是1,那这里就应该是6啊,因为允许有一位出错阿。4.per(j)=pep(pm_theory(j),13,er)中为什么取13呢? %漏同步概率
function [y]=pep(pe,n,k)
% pe 误码率
% n 码长
y=0;
for i=k:n
y=y+factorial(n)/(factorial(i)*factorial(n-i))*pe^i*(1-pe)^(n-i);
end
n是同步码组的码元数,这里取13说明同步帧是13位吗?还是别的什么原因?
希望各位高手能给解答一下! |
|