matlab程序问题大侠帮忙救命吖

a654649923 2011-06-05 10:39:52
%Rake 接收机 rake.m
clear all;
close all;
Tc = 1;
N = 128; %扩频增益
gx = 41889; %g(x) = x^15+x^13+x^9+x^8+x^7+x^5+1
g = dec2bin(gx);
state = 1;
L = 8192;
EcN0dB = -21:-14;
for k = 1:length(EcN0dB)
error(k) = 0; %计数错误比特
total(k) = 0; %计数总的传输比特数
sigma(k) = sqrt( 10.^(-EcN0dB(k)/10)/2);
while( error(k)<100)
%多径结构
p1 = sqrt(0.5/2)*( randn(1,L)+j*randn(1,L));
p2 = sqrt(0.3/2)*( randn(1,L)+j*randn(1,L));
p3 = sqrt(0.2/2)*( randn(1,L)+j*randn(1,L));
t1 = 0;
t2 = 1;
t3 = 2;

[pt state] = mgen(g,state,L+t3); %调用例10-1的m序列发生器函数

pt = 2*pt-1;

%数据产生
d = sign( randn(1,L/N)); %一次64个
%扩频,先将数据扩展,然后与pt点积
dd = sigexpand(d,N);
s = conv( dd,ones(1,N));
st = s(1:L+t3).*pt(1:L+t3); %扩频

%经过多径信道,加入噪声
z = sigma(k)*( randn(1,L)+j*randn(1,L));

rt = st(1:L).*p1+st(t2+1:L+t2).*p2+st(t3+1:L+t3).*p3+z;

%Rake接收
r1 = rt.*conj(p1).*pt(1:L);
r2 = rt.*conj(p2).*pt(t2+1:L+t2);
r3 = rt.*conj(p3).*pt(t3+1:L+t3);

%积分
r1 = reshape(r1,N,L/N); y1 = sum(r1);
r2 = reshape(r2,N,L/N); y2 = sum(r2);
r3 = reshape(r3,N,L/N); y3 = sum(r3);

%合并

y = y1+y2+y3; %最大比合并
%判决
dc = sign(real(y));
error(k) = error(k)+sum( abs((d-dc))/2)
total(k) = total(k)+L/N;
end
end





%m序列发生器,mgen.m
function[out]=mgen(g,state,N)
%输入g:m序列生成多项式(10进制输入)
%state:寄存器初始状态(10进制输入)
% N:输出序列长度
%test g=11;state=3;N=15;
gen=dec2bin(g)-48;
M=length(gen);
curstate=dec2bin(state,M-1)-48;

For k=1:N
out(k)= curstate(M-1);
a=rem(sum(gen(2:end).* curstate),2);
curstate=[a curstate(1:M-2)];
End



怎么把这个程序调试出图像 教教俺吧
...全文
113 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
hua_zhixing_ 2011-06-06
  • 打赏
  • 举报
回复
这程序应该是数字信号方面的吧?不懂,但或许可以给你个思路。

把计算后得到的数据存在数组中,然后直接用函数绘出来(具体什么函数忘了),希望对你有用!

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧