在Matlab中如何实现误码率的计算,并且是有图或者有曲线的那种

在Matlab中如何实现误码率的计算,并且是有图或者有曲线的那种,第1张

ber表示的就是误码率,第一樱握行是找出误码的位置,第二行程脊旁庆序是统计一下误码的个数,第三行是计算误码率,是启耐用误码的个数除以总的个数,结果就是ber变量,要画出曲线的话,可以把每一次计算出的值存在数组中,plot一下就好了

编蔽兆程很孝仿简单嘛巧并纤,就用一个for就可以了

比如 k表示错误数,信源:input 信宿:output

k=0

for i=1:length(input)

if input~=output

k=k+1

end

end

perror=k/length(input)

您好,您这样:

clc

clear

fc=4800fs=12000fb=2400

%要调制的数字信号

a=randint(1,12,2)%随机产生12个“0”,“1”

s=zeros(1,60)

for i=1:12

for j=1:5

if(a(i)==0)

 斗裤谈 s(j+(i-1)*5)=0

else

s(j+(i-1)*5)=1

end

end

end

plot(s)xlabel('基带信号')

figure

pwelch(s)%功率谱

figure

%波形成形滤波器(平方根升余弦滚降)

h=firrcos(14,1200,1200,4800,'sqrt')

figure

stem(h)xlabel('成形滤波器的单位冲击响应')

[H,W]=freqz(h,1)

H=abs(H)

figure

plot(H)xlabel('成形滤波器的频率响应')

s=fftfilt(h,s)

figure

plot(s)xlabel('通过成形滤波器后的基带信号')

figure

pwelch(s)%经波形成形滤波器后的功率谱

%已调信号

e=dmod(a,4800,2400,12000,'空碰psk',2)%调制

figure

plot(e)xlabel('已调信号')

enoise=e+randn(1,60)%enoise=e+.1*randn(1,60)不同功率的高斯白噪声

aa=ddemod(enoise,4800,2400,12000,'psk',2)%解调

figure

stem(aa)xlabel('解调后的数字信号')%解调后的数字信号

p=symerr(a,aa)/12 %误码率

%误码率曲线

figure

r=-6:3:12

rr=10.^(r/10)

pe1=1/2*exp(-rr)%相干解调的误码率曲线

hold on

plot(r,pe1,'r')grid on

pe2=(1-1/2*erfc(sqrt(rr))).*erfc(sqrt(rr))%差分相干解调的误码纯租率曲线

plot(r,pe2,'b')xlabel('bpsk,dpsk误码率曲线')

set(gca,'XTick',-6:3:18)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12462020.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存