📄 产生数据程序.m
字号:
function identify
clear
L=3003; % M 序列的周期
z1=1;z2=1;z3=1;z4=0; %4个移位寄存器的输出初始值
for i=1:L;%开始循环,L为循环长度
x1=xor(z3,z4);
x2=z1;
x3=z2;
x4=z3;
z(i)=z4; %输出值为“0”,“1”,即M序列
if z(i)>0.5,u(i)=-1;
else u(i)=1;
end %产生了幅值为±1的伪随机二位式信号(PRBS)序列
z1=x1;z2=x2;z3=x3;z4=x4; %为下一次的输入信号作准备
end %产生了输入信号u
figure(1); %作第一个图形 (可删除)
stem(u),grid on %(可删除)
fid1=fopen('c:\MATLAB\work\wkk01.data','w'); %输出第一组数据
v=randn(1,3003); %产生一组3000个的正态分布的随机噪声
y(3)=0;y(2)=0; y(1)=0; %设置y的两个初始值为零
for k=4:3003;
y(k)=1.5*y(k-1)-0.7*y(k-2)+u(k-2)+0.5*u(k-3)+v(k)+0.9*v(k-1)+0.7*v(k-2) ; %输出采样信号(加白噪声)
D=[k-3,u(k),v(k),y(k)];
fprintf(fid1,'%i\t %2.4f\t %2.4f\t %2.4f\t\n',D);
end
fclose(fid1);
L=3003; % M 序列的周期
z1=1;z2=1;z3=1;z4=0; %4个移位寄存器的输出初始值
for i=1:L;%开始循环,L为循环长度
x1=xor(z3,z4);
x2=z1;
x3=z2;
x4=z3;
z(i)=z4; %输出值为“0”,“1”,即M序列
if z(i)>0.5,u(i)=-1;
else u(i)=1;
end %产生了幅值为±1的伪随机二位式信号(PRBS)序列
z1=x1;z2=x2;z3=x3;z4=x4; %为下一次的输入信号作准备
end %产生了输入信号u
figure(1); %作第一个图形 (可删除)
stem(u),grid on %(可删除)
fid2=fopen('c:\MATLAB\work\wkk02.data','w'); %输出第2组数据
v=randn(1,3003); %产生一组3000个的正态分布的随机噪声
y(3)=0;y(2)=0; y(1)=0; %设置y的两个初始值为零
for k=4:3003;
y(k)=1.5*y(k-1)-0.7*y(k-2)+u(k-2)+0.5*u(k-3)+v(k)+0.9*v(k-1)+0.7*v(k-2) ; %输出采样信号(加白噪声)
D=[k-3,u(k),v(k),y(k)];
fprintf(fid2,'%i\t %2.4f\t %2.4f\t %2.4f\t\n',D);
end
fclose(fid2);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -