(13,9)循环码的MATLAB语言程序,跪求大神,要能运行的

(13,9)循环码的MATLAB语言程序,跪求大神,要能运行的,第1张

1、循环码编者磨码与解码Matlab源程序(实验以(7,4)循环码进行分析)

m

=

3

n

=

2^m-1

%定义码长

k

=

n-m

%信息位长

msg

=

randint(k*4,1,2)

%随机提取信号,引起一致地分布的任意整数矩阵

subplot(2,2,1)

stem(msg)

title('编码器输入信号')

p=cyclpoly(n,k)

%循环码生成多项式,n=7,k=4

code

=

encode(msg,n,k,'cyclic',p)

%编码函数,对信号进行差错编码

subplot(2,2,2)

stem(code)

title('编码器输出信号')

recode=decode(code,n,k,'cyclic',p)

%对信号进行译码,对接收到的码字进行译码,恢复

出原始的信息,译码参数和方式必须和编码时采用的严格相同

subplot(2,2,3)

stem(recode)

title('译码器输出信号')

t=-1:0.01:1

x=recode

%将recode赋值给x,并进行长度与fft设定

N=length(x)

fx=fft(x)

df=100/N

n=0:N/2

f=n*df

subplot(2,2,4)

plot(f,abs(fx(n+1))*2/念胡N)

grid

title('频谱图')

2、误码率与信噪比之间的关系程序(以(首高斗3,2)循环码进行测试)

m

=

2

n

=

2^m-1

%定义码长

k

=

n-m

%信息位长

Fs=40

%系统采样频率

Fd=1

%码速率

N=Fs/Fd

M=2

%进制数

for

SNRpBit=1:100%信噪比

SNR=SNRpBit/log2(M)

%制造100个信息组,每组k位

msg

=

randint(100,k,[0,1])

code

=

encode(msg,n,k,'cyclic/binary')

%加入噪声

%在已调信号中加入高斯白噪声

noisycode=awgn(code,SNR-10*log10(0.5)-10*log10(N),'measured',[],'dB')

%将浮点数转化为二进制,波形整形过程

for

i=1:100

for

a=1:k+1

if

noisycode(i,a)<0.5

noisycode(i,a)

=

0

else

noisycode(i,a)

=

1

end

end

end

%译码

newmsg

=

decode(noisycode,n,k,'cyclic')

%计算误码率

[number,ratio]=biterr(newmsg,msg)

result(SNRpBit)=ratio

disp(['The

bit

error

rate

is',num2str(ratio)])

end

%不同信噪比下循环码经过加性高斯白噪声信道的误码率

figure(1)

stem(result)

title('循环码在不同信噪比下的误码率')

legend('误码率','*')

xlabel('信噪比')

ylabel('在加性高斯白噪声下的误码率')

phy(x,y)应该是p(i,j)旦敏基

最好xx=[-0.02:0.0004:0.02]

yy=[0:0.01:1]

a=0.1

for i=1:101

x=xx(1,i)

for j=1:101

y=yy(1,j)

phy(x,y)=(1/pi)*atan((sin(pi*y)*sinh(pi*a/2))/(cosh(pi*x)-cosh(pi*y)*cosh(pi*a/2)))

end

end

phy

这样x和y就不拿坦显示了模谨,只显示结果

Matlab中实现循环结构的语法包括茄猜for循环和while循环。

for循环:

for循环用于对一段指定范围的变量进行循环 *** 作,其基本语法为:

matlabCopy codefor 变量 = 范围

   循环体

end

其中,变量是一个循环变量,范围是一个包含一组数值的向量或矩阵,循环体是需要重复执行的语句块。

例如,以下程序通过for循环计算1到10的平方和:

matlabCopy codesum = 0

for i = 1:10

   sum = sum + i^2

end

disp(sum)

输出结果为:385

while循环:

while循环用于在满足条件时执行一段语句块,其基本语法为:

matlabCopy codewhile 条件

   循环体

end

其中,条件是需要满足的逻辑条件,困纳含循环体是需要重复执行的语句块。

例如,以下程序通过while循环计算1到10的平方和:

matlabCopy codesum = 0

i = 1

while i <= 10

   sum = sum + i^2

   i = i + 1

end

disp(sum)

输出结汪笑果为:385


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存