作业帮 > 综合 > 作业

matlab 已知cmi编码程序 求出cmi序列的功率谱密度并画出功率谱密度图

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/04 15:42:58
matlab 已知cmi编码程序 求出cmi序列的功率谱密度并画出功率谱密度图
function y=cmi(x) %输出:输入的二进制NRZ序列x;
j=length(x);
m=1; %1码的cmi编码的判决码;
n=1; %1码的cmi编码判决码的辅助码;
q=[0,;]; %cmi编码后的前一位序列数组;
h=[0,;]; %cmi编码后的后一位序列数组;
y=[];
for k=1:j %for语句NRZ码序列的第一个到第十个循环;
m=mod(n,2); %cmi编码结果00和11交替的判决语句;
if (x(k)==0) %如果NRZ码为0,则进行下一步;
q(k)=0; %cmi编码输出的前一位为0;
h(k)=1; %cmi编码输出的后一位为1;
end %本if语句循环结束;
if (x(k)==1 & m==1) %如果NRZ码为1且编码判决码为1,则进行下一步;
q(k)=1; %cmi编码输出的前一位为1;
h(k)=1; %cmi编码输出的后一位为1;
n=n+1; %判决辅助码加1;
end %本if语句循环结束;
if (x(k)==1 & m==0) %如果NRZ码为1且编码判决码为0,则进行下一步;
q(k)=0; %cmi编码输出的前一位为0;
h(k)=0; %cmi编码输出的后一位为0;
n=n+1; %判决辅助码加1;
end %本if语句循环结束;
end %本for语句循环结束;
fprintf('Display encode result:\n'); %显示"输出编码结果为:";
for k=1:j %for语句cmi编码后序列的第一个到第十个的循环;
if (q(k)==1 &h(k)==1) %如果cmi编码后的前一位和后一位都为1,则进行下一步;
fprintf(' 11 ') %cmi编码输出为"11";
y=[y 1 1];
else if (q(k)==0 &h(k)==0) %如果cmi编码后的前一位和后一位都为0,则进行下一步;
fprintf(' 00 ') %cmi编码输出为"00";
y=[y 0 0];
else %上述情况以外;
fprintf(' 01 ') %cmi编码输出为"01";
y=[y 0 1];
end %结束本if语句;
end %结束上层if语句;
end %结束for循环语句;
这是cmi编码程序 要求产生一随机序列 对其进行cmi编码 并画出功率谱密度图
继续回答:
4.select s.Sname s.Ssex from where Student s where s.age>22 and s.Sdept='CS'
5.select AVG(s1.Grade) from SC s1 where s1.Sno ='95003'
6.select s.Sno,s.Sname from student s ,SC s1 where s.Sno=s1.Sno and s1.Cno='3'
完事