clear all;
close all;
clc
SymNum=8000;
p=20;
%产生SymNum个服从均匀分布的随机数
orginal_bit=randsrc(1,SymNum,[0,1]);
%信道编码
G=[1 1 1 1 0 0
1 1 0 0 1 0
0 1 1 0 0 1];
recode1=encode(orginal_bit,6,3,'linear',G);
%双极性映射
transmitted_signal=recode1
transmitted_signal(find(transmitted_signal==0))=-1;
transmitted_signal(find(transmitted_signal==1))=1;
figure
stem(transmitted_signal)
axis([0 20 -1.2 1.2]);
xlabel('Time');
ylabel('Amplitude')
scatterplot(transmitted_signal)
hold on
%升余弦滚降滤波器
Fs=4;
Fd=1;
r=0.15;
Delay=3;
flitter=rcosine(Fd,Fs,'default',r,Delay)
out=rcosflt(transmitted_signal,Fd,Fs,'filter',flitter);
out=out.';
figure
subplot(2,1,1)
plot(out)
axis([0,300,-2.5*10^4,2.5*10^4])
title('根号升余弦滚降滤波器输出')
SNR_dB=[-12:2:12];
for i=1:13
sent=awgn(out,SNR_dB(i)+3,'measured');%根据不同信噪比加入高斯噪声
receive=rcosflt(sent,Fd,Fs,'fs/filter',flitter) ;
receive_signal=receive(1+Delay*(Fs/Fd)*2:end);
%抽样判决
sample = downsample(receive_signal,Fs/Fd);
judge_signal = sample;
judge_signal(sample >= 0) = 1;
judge_signal(sample < 0) = 0;
judge_signal_t = recode1;
judge_signal_t = judge_signal(1:length(recode1));
judge_signal_t = judge_signal_t.';
%计算解码前误码个数及误码率
[number1(i),ratio1(i)] = biterr(recode1,judge_signal_t);
simulate1(i) = ratio1(i);
figure
%绘制波形图
stem(1:Fs*p,receive(1+Delay*(Fs/Fd)*2:Fs*p+Delay*(Fs/Fd)*2),'filled');
title_1 = strcat('信号的波形图(信噪比 Eb/N0=',num2str(i-1),'dB)');
title(title_1);
hold on
%绘制星座图
stem([1:Fs/Fd:Fs*p],recode1(1:p),'ko');
scatterplot(receive);
title_1=strcat('星座图(信噪比SNR=',num2str(i-1),'dB)');
title(title_1);
%信道解码
decode_signal=decode (judge_signal_t,6,3,'linear',G);
decode_signal_t = orginal_bit;
decode_signal_t = decode_signal(1:length(orginal_bit));
%计算解码后误码个数及误码率
[number2(i),ratio2(i)] = biterr(orginal_bit,decode_signal_t);
simulate2(i) = ratio2(i);
%计算理论误码率
theory=0.5*erfc(sqrt(10.^(SNR_dB/10)));
end
%绘制误码率曲线图对比
figure
semilogy(SNR_dB,simulate1,'r-*')
hold on
semilogy(SNR_dB,theory,'g-*')
hold on
semilogy(SNR_dB,simulate2,'y-*')
hold on
legend('解码前误码率','理论误码率','解码后误码率')
xlabel('信噪比 Eb/N0')
ylabel('误码率')
title('误码率与信噪比的关系')
grid on
评论0