当前位置:文档之家› 基于MATLAB的IS-95系统仿真

基于MATLAB的IS-95系统仿真

基于MATLAB的IS-95系统仿真
基于MATLAB的IS-95系统仿真

CDMA 期末论文

基于MATLAB的IS-95系统仿真

课程名称CDMA蜂窝移动通信姓名

学号

专业

成绩

任课老师

上课学期

1 作业要求

● 分析给出的源程序,逐行给出中文注释,并分析仿真结果。 ● 按照如图1所示的框图设计一个CDMA 系统,并进行仿真。

图1 CDMA 系统框图

2 题目一

2.1 源程序注释

2.1.1 主程序部分

%main_CDMA_forward.m

%此函数用于IS-95前向链路系统的仿真,包括扩 %频调制,匹配滤波,RAKE 接收等相关通信模块。 %但没有在频带上进行调制仿真。 %仿真环境: 加性高斯白噪声信道. %数据速率 = 9600 KBps %

clear all close all clc

disp('--------------start-------------------'); % 定义通信仿真全局变量 global Zi Zq Zs show R Gi Gq

% Zi I 支路扩频PN 序列生成器状态 % ZQ Q 支路扩频PN 序列生成器状态 % Zs 扰码PN 序列生成器状态

% show 指示是否画出仿真过程各部分产生的输出

信源

卷积编

交织编扩频 加扰

调制

AWGN 信道

解调

解扰信宿

解卷积

解交织

解扩

% R 仿真时码元宽度

% Gi I支路扩频PN序列

% Gq Q支路扩频PN序列

clear j;

show = 0;

SD = 0; % 选择软/硬判决接收

%-------------------主要的仿真参数设置------------------

% 信道数据率为9600 bps

BitRate = 9600;

% 码片速率为1.2288 MHz

ChipRate = 1228800;

% 消息码元个数

N = 184;

% 匹配滤波器类型--升余弦

MFType = 1;

R = 5;

%+++++++++++++++++++Viterbi生成多项式++++++++++++++++++

% 维特比译码器(译卷积码)

G_Vit = [1 1 1 1 0 1 0 1 1; 1 0 1 1 1 0 0 0 1];

% 生成矩阵的长度

K = size(G_Vit, 2);

% 输出码片数

L = size(G_Vit, 1);

%++++++++++++++++++++++++++++++++++++++++++++++++++++++ %++++++++++++++++++++++Walsh矩阵++++++++++++++++++++++++ % 规定需要的Walsh序列长度

WLen = 64;

% 生成64 bit Walsh序列[1010.....]

Walsh = reshape([1;0]*ones(1, WLen/2), WLen , 1);

%Walsh = zeros(WLen ,1);

%++++++++++++++++++++++++++++++++++++++++++++++++++++++ %++++++++++++++++++扩频调制PN码的生成多项式++++++++++++++ %Gi = [ 1 0 1 0 0 0 1 1 1 0 1 0 0 0 0 1]';

%Gq = [ 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1]';

% I信道扩频PN序列生成多项式

Gi_ind = [15, 13, 9, 8, 7, 5, 0]';

% I信道扩频PN序列生成多项式

Gq_ind = [15, 12, 11, 10, 6, 5, 4, 3, 0]';

% 初始化序列Gi(16 bit,全零)

Gi = zeros(16, 1);

% 根据生成多项式Gi_ind将对应位置1

Gi(16-Gi_ind) = ones(size(Gi_ind));

% 初始化I路信道PN码生成器的初始状态

Zi = [zeros(length(Gi)-1, 1); 1];

% 初始化序列Gi(16 bit,全零)

Gq = zeros(16, 1);

% 根据生成多项式Gq_ind将对应位置1,得到二进制生成多项式

Gq(16-Gq_ind) = ones(size(Gq_ind));

% Q路信道PN码生成器的初始状态

Zq = [zeros(length(Gq)-1, 1); 1];

%++++++++++++++++++++++++++++++++++++++++++++++++++++++

%+++++++++++++++++++扰码生成多项式++++++++++++++++++++++

% 扰码序列生成多项式

Gs_ind = [42, 35, 33, 31, 27, 26, 25, 22, 21, 19, 18, 17, 16, 10, 7, 6, 5, 3, 2, 1, 0]'; % 初始化序列Gs

Gs = zeros(43, 1);

% 根据生成多项式Gs_ind将对应位置1,得到二进制生成多项式

Gs(43-Gs_ind) = ones(size(Gs_ind));

% 长序列生成器的初始状态

Zs = [zeros(length(Gs)-1, 1); 1];

%++++++++++++++++++++++++++++++++++++++++++++++++++++++

%++++++++++++++++++++++AWGN信道++++++++++++++++++++++++ % 扩频增益

EbEc = 10*log10(ChipRate/BitRate);

%

EbEcVit = 10*log10(L);

% 仿真信噪比范围(dB)

% EbNo = [-2 : 0.5 : 6.5];

EbNo = [-2 : 0.5 : 4];

%++++++++++++++++++++++++++++++++++++++++++++++++++++++

%------------------------------------------------------

%-------------------------主程序-------------------------

% 初始化向量

ErrorsB = []; ErrorsC = []; NN = [];

% ErrorsB

% ErrorsC

% NN

% 输出信息说明采用的维特比译码判决类型

if (SD == 1)

fprintf('\n SOFT Decision Viterbi Decoder\n\n');

else

fprintf('\n HARD Decision Viterbi Decoder\n\n');

end

% 对信噪比范围内每个数字进行仿真

for i=1:length(EbNo)

% 输出当前仿真信噪比

fprintf('\nProcessing %1.1f (dB)', EbNo(i));

iter = 0; % 仿真计数器

ErrB = 0; % 出错的比特数(编码前)

ErrC = 0; % 出错的子码数(编码后)

while (ErrB <300) & (iter <150)

% 当误码数超过或者循环试验150次以上才可以统计误码率

% 激活命令窗口

drawnow;

%++++++++++++++++++++++发射机+++++++++++++++++++++++

% 生成信息码元(由高斯白噪声经过零比较得到)

TxData = (randn(N, 1)>0);

% 输出已编码、交织并加扰的消息比特与所用到的扰码

%(码率:19.2 kbps)

[TxChips, Scrambler] = PacketBuilder(TxData, G_Vit, Gs);

% 下面进行扩频调制,调制后码率为1.2288Mcps

[x PN MF] = Modulator(TxChips, MFType, Walsh);

%++++++++++++++++++++++++++++++++++++++++++++++++++++++

%+++++++++++++++++++++++++++++++++++++++++++++++++

%信道产生高斯白噪声

noise = 1/sqrt(2)*sqrt(R/2)*( randn(size(x)) + j*randn(size(x)))*10^(-(EbNo(i) - EbEc)/20);

%j*randn(size(x)))*10^(-(EbNo(i) - EbEc)/20);

%向已调信号中混入加性高斯白噪声

r = x+noise;

%++++++++++++++++++++++++++++++++++++++++++++++++++++++

%+++++++++++++++++++++++++接收机++++++++++++++++++++++++

% 软判决,输出速率为19.2 Kcps 经过卷积编码的序列

RxSD = Demodulator(r, PN, MF, Walsh);

% 对Rake接收机解调后的信号进行过零比较

RxHD = (RxSD>0);

if (SD)

% 如果选择了软判决则会进行软判决,

% 并进行解扰、解交织维特比译码

[RxData Metric]= ReceiverSD(RxSD, G_Vit, Scrambler);

else

% 进行硬判决,并进行解扰、解交织维特比译码

[RxData Metric]= ReceiverHD(RxHD, G_Vit, Scrambler);

end

%++++++++++++++++++++++++++++++++++++++++++++++++++++++

if(show)

% 画出软判决输出结果

subplot(311);

plot(RxSD, '-o');

title('Soft Decisions');

% 将判决结果与发送序列异或,显示出错码(维特比译码前)

subplot(312);

plot(xor(TxChips, RxHD), '-o');

title('Chip Errors');

% 将收发数据进行异或,显示出错码

subplot(313);

plot(xor(TxData, RxData), '-o');

title(['Data Bit Errors. Metric = ', num2str(Metric)]);

pause;

end

if(mod(iter, 50)==0)

% 如果已循环次数为50的倍数则打印‘.’将变量保存

fprintf('.');

% 将变量保存到硬盘

save TempResults ErrB ErrC N iter

end

% 计算编码前,解码后出错的消息比特(9600 Bps)数量

ErrB = ErrB + sum(xor(RxData, TxData));

% 计算经过编码出错的子码(19.2 kBps)数

ErrC = ErrC + sum(xor(RxHD, TxChips));

% 循环次数加1

iter = iter+ 1;

end

% 生成误比特数向量

ErrorsB = [ErrorsB; ErrB];

% 生成误码数向量

ErrorsC = [ErrorsC; ErrC];

% 计算本次共仿真的消息比特数

NN = [NN; N*iter];

% 保存所有产生的数据

save SimData *

end

%+++++++++++++++++++++++++误码率计算++++++++++++++++++++++++ % 计算误码率(卷积编码前的信号)

PerrB = ErrorsB./NN;

% PerrB1 = ErrorsB1./NN1;

% 计算误码率(卷积编码后的信号)

PerrC = ErrorsC./NN;

% BPSK调制理论误码率(无卷积编码与扩频)

Pbpsk= 1/2*erfc(sqrt(10.^(EbNo/10)));

% 有维特比译码但无扩频的理论误码率

PcVit= 1/2*erfc(sqrt(10.^((EbNo-EbEcVit)/10)));

% 有扩频但无维特比译码的理论误码率

Pc = 1/2*erfc(sqrt(10.^((EbNo-EbEc)/10)));

%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %%+++++++++++++++++++++++++性能仿真显示++++++++++++++++++++++ figure;

semilogy(EbNo(1:length(PerrB)), PerrB, 'b-*');

hold on;

% %semilogy(EbNo(1:length(PerrB1)), PerrB1, 'k-o');

% hold on;

semilogy(EbNo(1:length(PerrC)), PerrC, 'b-o');

grid on;

semilogy(EbNo, Pbpsk, 'b-.^');

semilogy(EbNo, PcVit, 'k-.x');

ylabel('BER');

semilogy(EbNo, Pc, 'b-.x');

xlabel('信噪比/dB');

ylabel('误码率');

%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ disp('--------------end-------------------');

%------------------------------------------------------

2.1.2 PacketBuilder函数

用于信号传输之前的卷积编码和交织编码和加扰码

% ************************beginning of file***************************** %PacketBuilder.m

function [ChipsOut, Scrambler] = PacketBuilder(DataBits, G, Gs);

%

%此函数用于产生IS-95前向链路系统的发送数据包

%+++++++++++++++++++++++variables++++++++++++++++++++++++++++

% DataBits 发送数据(二进制形式)

% G Viterbi编码生成多项式

% Gs 长序列生成多项式(扰码生成多项式)

% ChipsOut 输入到调制器的码序列(二进制形式)

% Scrambler 扰码

%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ % 全局变量

global Zs

% 取得卷积码的约束长度K = 9

K = size(G, 2);

% 取得对于每一位消息码编码器的输出位数L = 2

L = size(G, 1);

% 计算扩频后的子数

%(原始比特:9.6 Kbps-> 卷积编码后:19.2 Kbps ->扩频后:1.2288 Mbps)

N = 64*L*(length(DataBits)+K-1);

% 加入尾比特,并进行卷积编码

chips = VitEnc(G, [DataBits; zeros(K-1,1)]);

% 交织编码

% 先将编码器输出转为24行16列矩阵

INTERL = reshape(chips, 24, 16);

% 再将转置矩阵按串行输出

% 速率=19.2 KBps

chips = reshape(INTERL', length(chips), 1);

% 产生扰码

% PNGen 用于产生1.2288 Mc/s 的扰码

[LongSeq Zs] = PNGen(Gs, Zs, N);

% 以下进行分频,得到19.2 kbps 的扰码

Scrambler = LongSeq(1:64:end);

% 对编码后的比特进行加扰(码率;19.2 kbps)

ChipsOut = xor(chips, Scrambler);

%************************end of file*********************************** 2.1.3 Modulator函数

将信号进行扩频和调制之后再发送

%**********************beginningoffile*******************

%VitEnc.m

function y = VitEnc(G, x);

% 此函数根据生成多项式进行Viterbi编码

%

%+++++++++++++++++++++++variables++++++++++++++++++++++++++++

% G 生成多项式的矩阵

% x 输入数据(二进制形式)

% y Viterbi编码输出序列

%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ % 取得对于每一位消息码编码器的输出位数

K = size(G, 1);

% 取得消息比特长度

L = length(x);

% 进行二维卷积运算

yy = conv2(G, x');

% 去除多余项

yy = yy(:, 1:L);

% 将输出矩阵变为一行

y = reshape(yy,K*L, 1);

% 模2运算

y = mod(y, 2);

%************************endoffile***********************

2.1.4 PNGen函数

根据PN序列的生成多项式产生PN序列

2.1.5 VitEnc函数

进行维比特编码的函数

%************************beginningoffile*****************

%PNGen.m

function [y, Z] = PNGen(G, Zin, N);

%

% 此函数是根据生成多项式和输入状态产生长度为N的伪随机序列

%+++++++++++++++++++++++variables++++++++++++++++++++++++++++

% G 生成多项式

% Zin 移位寄存器初始化

% N PN序列长度

% y 生成的PN码序列

% Z 移位寄存器的输出状态

%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ % 取得生成矩阵的长度

L = length(G);

% 移位寄存器的初始化

Z = Zin;

% 初始化输出序列为全零

y = zeros(N, 1);

for i=1:N

% 输出最高位

y(i) = Z(L);

% 异或

Z = xor(G*Z(L), Z);

% 移位

Z = [Z(L); Z(1:L-1)];

end

%yy = filter(1, flipud(G), [1; zeros(N-1, 1)]);

%yy = mod(yy, 2);

%************************end of file*********************************** 2.1.6 函数Demodulator

对接收到的信号进行解调和解扩

%************************beginningoffile*****************

%Modulator.m

function [TxOut, PN, MF] = Modulator(chips, MFType, Walsh);

%

%此函数用于实现IS-95前向链路系统的数据调制

%+++++++++++++++++++++++variables++++++++++++++++++++++++++++

% chips 发送的初始数据

% MFType 成型滤波器的类型选择

% Walsh walsh码

% TxOut 调制输出信号序列

% PN 用于扩频调制的PN码序列

% MF 匹配滤波器参数

%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ % 导入全局变量

global Zi Zq show R Gi Gq

% 计算输出字码数

N = length(chips)*length(Walsh);

% 输入速率= 19.2 KBps, 输出速率= 1.2288 Mcps

% 先将单极性归二进制码变换为双极性码

% 再与Walsh序列相乘,实现正交调制

tmp = sign(Walsh-1/2)*sign(chips'-1/2);

% 串并转换

chips = reshape(tmp, prod(size(tmp)), 1);

% 产生I支路PN扩频序列(1.2288Mc/s)

[PNi Zi] = PNGen(Gi, Zi, N);

% 产生Q支路PN扩频序列(1.2288Mc/s)

[PNq Zq] = PNGen(Gq, Zq, N);

% 将I支路与Q支路在复数域合并表示

PN = sign(PNi-1/2) + j*sign(PNq-1/2);

% 同时对同相与正交分量进行扩频扩频

chips_out = chips.*PN;

% 对输出序列进行0插值(加上信道中传输的保护间隔)

chips = [chips_out, zeros(N, R-1)];

chips = reshape(chips.' , N*R, 1);

%成型滤波器,以下代码构造成型滤波器

switch (MFType)

case 1

%升余弦滤波器(时域)

L = 25;

L_2 = floor(L/2);

n = [-L_2:L_2];

B = 0.7;

MF = sinc(n/R).*(cos(pi*B*n/R)./(1-(2*B*n/R).^2));

MF = MF/sqrt(sum(MF.^2));

case 2

%矩形滤波器

L = R;

L_2 = floor(L/2);

MF = ones(L, 1);

MF = MF/sqrt(sum(MF.^2));

case 3

%汉明滤波器

L = R;

L_2 = floor(L/2);

MF = hamming(L);

MF = MF/sqrt(sum(MF.^2));

end

% 转置

MF = MF(:);

% 利用卷积运算进行基带滤波仿真

TxOut = sqrt(R)*conv(MF, chips)/sqrt(2);

% 去除冗余信息

TxOut = TxOut(L_2+1: end - L_2);

if (show)

figure;

% 画出匹配滤波器的时域特性(冲击响应)

subplot(211); plot(MF, '-o');

title('Matched Filter');

% 显示网格

grid on;

subplot(212);

% 画出功率谱

psd(TxOut, 1024, 1e3, 113);

title('Spectrum');

end

%************************endoffile***********************

2.1.7 函数ReceiverHD

接收机,硬判决,进行解扰、解卷积和解交织

%************************beginningoffile*****************

%ReceiverHD.m

function [DataOut, Metric] = ReceiverHD(HDchips, G, Scrambler);

%

% 此函数用于实现基于Viterbi译码的硬判决接收机

%+++++++++++++++++++++++variables++++++++++++++++++++++++++++

% SDchips 硬判决RAKE接收机输入符号

% G Viterbi编码生成多项式矩阵

% Scrambler 扰码序列

% DataOut 接收数据(二进制形式)

% Metric Viterbi译码最佳度量

%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ % 如果输入参数只有一个,则采用默认生成矩阵

if (nargin == 1)

G = [1 1 1 1 0 1 0 1 1; 1 0 1 1 1 0 0 0 1];

end

% 速率=19.2 KBps

% 解扰

HDchips = xor(HDchips, Scrambler);

% 解交织

INTERL = reshape(HDchips, 16, 24);

HDchips = reshape(INTERL', length(HDchips), 1);

% 维特比译码

[DataOut Metric] = VitDec(G, HDchips, 1);

%************************endoffile***********************

2.1.8 函数VitDec

硬判决的维比特译码

%************************beginningoffile*****************

%VitDec.m

function [xx, BestMetric] = VitDec(G, y, ZeroTail);

%

% 此函数是实现硬判决输入的Viterbi译码

%+++++++++++++++++++++++variables++++++++++++++++++++++++++++

% G 生成多项式的矩阵

% y 输入的待译码序列

% ZeroTail 判断是否包含‘0’尾

% xx Viterbi译码输出序列

% BestMetric 最后的最佳度量

%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ % 输出码片数

L = size(G, 1);

% 生成多项式长度

K= size(G, 2);

% 状态数

N = 2^(K-1);

% 最大栅格深度

T = length(y)/L;

% 生成零矩阵

OutMtrx = zeros(N, 2*L);

for s = 1:N

% 产生全1的矩阵与十进制转成二进制的矩阵相乘

in0 = ones(L, 1)*[0, (dec2bin((s-1), (K-1))-'0')];

% 产生全1的矩阵与十进制转成二进制的矩阵相乘

in1 = ones(L, 1)*[1, (dec2bin((s-1), (K-1))-'0')];

% 两矩阵对应位置元素相乘之和对2求余

out0 = mod(sum((G.*in0)'), 2);

% 两矩阵对应位置元素相乘之和对2求余

out1 = mod(sum((G.*in1)'), 2);

% 两个矩阵合并

OutMtrx(s, :) = [out0, out1];

end

% 初始状态= 100

PathMet = [0; 100*ones((N-1), 1)];

% 取出第1列的元素

PathMetTemp = PathMet(:,1);

% 生成零矩阵

Trellis = zeros(N, T);

% 往矩阵第1列赋予0、1、2…的递增值

Trellis(:,1) = [0 : (N-1)]';

% 矩阵变形

y = reshape(y, L, length(y)/L);

for t = 1:T

% 从1到T列逐列取出,并转置

yy = y(:, t)';

for s = 0:N/2-1

% 对运算结果取最小值

[B0 ind0] = min( PathMet(1+[2*s, 2*s+1]) + [sum(abs(OutMtrx(1+2*s, 0+[1:L]) - yy).^2); sum(abs(OutMtrx(1+(2*s+1), 0+[1:L]) - yy).^2)] );

% 对运算结果取最小值

[B1 ind1] = min( PathMet(1+[2*s, 2*s+1]) + [sum(abs(OutMtrx(1+2*s, L+[1:L]) - yy).^2); sum(abs(OutMtrx(1+(2*s+1), L+[1:L]) - yy).^2)] );

% 将B0与B1矩阵合并并赋值

PathMetTemp(1+[s, s+N/2]) = [B0; B1];

Trellis(1+[s, s+N/2], t+1) = [2*s+(ind0-1); 2*s + (ind1-1)];

end

PathMet = PathMetTemp;

end

%生成零矩阵

xx = zeros(T, 1);

%如果包含零尾

if (ZeroTail)

%最佳标志位置1

BestInd = 1;

else

%否则取矩阵最小值赋值

[Mycop, BestInd] = min(PathMet);

end

%最佳度量为矩阵被标志的位

BestMetric = PathMet(BestInd);

%将(BestInd-1)/(N/2)结果向下取整

%作为Viterbi译码输出序列最后一位

xx(T) = floor((BestInd-1)/(N/2));

%取数组元素赋NextState初值

NextState = Trellis(BestInd, (T+1));

for t=T:-1:2

%NextState/(N/2)向下取整赋值给xx

xx(t-1) = floor(NextState/(N/2));

%取数组元素赋值给NextState

NextState = Trellis( (NextState+1), t);

end

%如果零尾

if (ZeroTail)

%取其中1到end-K+1位

xx = xx(1:end-K+1);

end

%************************endoffile***********************

2.1.9 函数ReceiverSD

用于软判决的接收机

%************************beginningoffile*****************

%ReceiverSD.m

function [DataOut, Metric] = ReceiverSD(SDchips, G, Scrambler);

%

% 此函数用于实现基于Viterbi译码的发送数据的恢复

%+++++++++++++++++++++++variables++++++++++++++++++++++++++++

% SDchips 软判决RAKE接收机输入符号

% G Viterbi编码生成多项式矩阵

% Scrambler 扰码序列

% DataOut 接收数据(二进制形式)

% Metric Viterbi译码最佳度量

%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ if (nargin == 1)

G = [1 1 1 1 0 1 0 1 1; 1 0 1 1 1 0 0 0 1];

% 若只给出接收序列参数,则重新定义生成多项式

end

% 速率=19.2 KBps

SDchips = SDchips.*sign(1/2-Scrambler);

% 解扰384bit

INTERL = reshape(SDchips, 16, 24);

% 解交织

SDchips = reshape(INTERL', length(SDchips), 1);

% 速率=19.2 KBps

[DataOut Metric] = SoftVitDec(G, SDchips, 1);

% 卷积解码,判决

%************************endoffile***********************

2.1.10 函数SoftVitDec

用于软判决的维比特译码

%************************beginningoffile*****************%SoftVitDec.m function [xx, BestMetric] = SoftVitDec(G, y, ZeroTail);

%

% 此函数是实现软判决输入的Viterbi译码

%+++++++++++++++++++++++variables++++++++++++++++++++++++++++

% G 生成多项式的矩阵

% y 输入的待译码序列

% ZeroTail 判断是否包含‘0’尾

% xx Viterbi译码输出序列

% BestMetric 最后的最佳度量

%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ L = size(G, 1); % 输出码片数

K= size(G, 2); % 生成多项式的长度

N = 2^(K-1); % 状态数

T = length(y)/L; % 最大栅格深度

OutMtrx = zeros(N, 2*L);

% 存放256种移位寄存器状态所对应的编码

for s = 1:N

in0 = ones(L, 1)*[0, (dec2bin((s-1), (K-1))-'0')];

% 初始状态为0时对应移位寄存器状态

in1 = ones(L, 1)*[1, (dec2bin((s-1), (K-1))-'0')];

% 初始状态为1

out0 = mod(sum((G.*in0)'), 2);

% 对应的编码器输出

out1 = mod(sum((G.*in1)'), 2);

OutMtrx(s, :) = [out0, out1];

% 存到编码输出状态

end

OutMtrx = sign(OutMtrx-1/2);

% 转换成双极性码

PathMet = [100; zeros((N-1), 1)];

% 初始状态= 100

PathMetTemp = PathMet(:,1);

Trellis = zeros(N, T);

Trellis(:,1) = [0 : (N-1)]';

y = reshape(y, L, length(y)/L);

% y为2*192矩阵

for t = 1:T

yy = y(:, t);

% 取信码,每两个一组

for s = 0:N/2-1

% 计算收到序列与所有可能发送序列的距离

[B0 ind0] = max( PathMet(1+[2*s, 2*s+1]) + [OutMtrx(1+2*s, 0+[1:L]) * yy; OutMtrx(1+(2*s+1), 0+[1:L])*yy] );

[B1 ind1] = max( PathMet(1+[2*s, 2*s+1]) + [OutMtrx(1+2*s, L+[1:L]) * yy; OutMtrx(1+(2*s+1), L+[1:L]) * yy] );

PathMetTemp(1+[s, s+N/2]) = [B0; B1];

% 将度量值存入路径中

Trellis(1+[s, s+N/2], t+1) = [2*s+(ind0-1); 2*s + (ind1-1)]; % 将对应码型存入Trellis中

end

PathMet = PathMetTemp;

end

xx = zeros(T, 1);

if (ZeroTail)

% 若不包含0尾,则最佳度量为1,否则取最匹配路径

BestInd = 1;

else

[Mycop, BestInd] = max(PathMet);

end

BestMetric = PathMet(BestInd);

% 取最匹配路径的度量值

xx(T) = floor((BestInd-1)/(N/2));

NextState = Trellis(BestInd, (T+1));

% 取最佳度量对应的码型序列,转换成2进制序列存入译码出序列中

for t=T:-1:2

xx(t-1) = floor(NextState/(N/2));

NextState = Trellis( (NextState+1), t);

end

if (ZeroTail)

xx = xx(1:end-K+1);

% 去掉0尾

end

%************************endoffile***********************

2.2 仿真结果与分析

图2.2.1程序的主流程图

2.2.1 误码率

在显示参数show为0 的情况下运行main_IS95_forward.m文件的程序,得出的误码率与信噪比的图形。由图形可以知道,随着系统信噪比的增大,误码率减少。在不同的参数条件下,采用判决方式不同,滤波器选择的类型不同,误码率也会不同。图2.2.2是在使用升余弦滤波器下的软判决和硬判决的误码率,由图可以看出,软判决效果要比硬判决好,误码率下降到10-3时,硬判决的信噪比达到4dB,而软判决只需1.5dB。当然,也可以采用其他的滤波器,这里就不贴出结果了。

-2

-1

1

234

10-3

10

-2

10

-1

10

误码率

信噪比/dB

PerrB Pb of System

PerrC Pc before Viterbi decoding of System Pbpsk Pb of BPSK with no Viterbi (theory)

PcVit Err rate for Viterbi Encoding without DSSS (theory)Pc Pc on Receiver before Viterbi (theory)

图2.2.2 误码率

图2.2.3 硬判决的误码率(升余弦滤波器) 图2.2.4 软判决的误码率(升余弦滤波器)

2.2.2 滤波器

本题使用了三种滤波器,即升余弦滤波器、矩形滤波器、汉明窗滤波器,在发射和接收器的时候可以随意选择,下图是三种滤波器和其功率的波形。

图2.2.5升余弦滤波器图2.2.6

矩形滤波器

图2.2.7 汉明窗滤波器

3 题目二

本题是在第一题的基础上加多一个用户,按照系统框图实现。CDMA系统的框图如下图所示。

信源卷积编交织编扩频

加扰

调制

AWGN信道

解调解扰

信宿解卷积解交织解扩

图3 CDMA 系统框图

说明:由于这部分代码大部分可以沿用第一部分IS95前向业务信道仿真的代码,因此此时给出主程序代码以及仿真结果。从结果中可以看到,经过了卷积编码、交织后,在信噪比只有2dB 的时候,虽然传输的码片出现了较大误码率(中图),但经过解交织、解卷积后误码被被消除(下图)。

050100150200250300350400

00.51Soft Decisions

050100150200250300350400

00.5

1Chip Errors

020406080100120140160180200

-1

01Data Bit Errors. Metric = 31

图3.1 仿真结果

clear all close all clc

disp('--------------start-------------------'); % 定义通信仿真全局变量 global Zi Zq Zs show R Gi Gq

% Zi I 支路扩频PN 序列生成器状态 % ZQ Q 支路扩频PN 序列生成器状态 % Zs 扰码PN 序列生成器状态

% show 指示是否画出仿真过程各部分产生的输出 % R 仿真时码元宽度 % Gi I 支路扩频PN 序列 % Gq Q 支路扩频PN 序列

clear j; show = 0;

SD = 0; % 选择软/硬判决接收

%-------------------主要的仿真参数设置------------------ % 信道数据率为9600 bps BitRate = 9600;

% 码片速率为1.2288 MHz

ChipRate = 1228800;

% 消息码元个数

N = 184;

% 匹配滤波器类型--升余弦

MFType = 1;

R = 5;

%+++++++++++++++++++Viterbi生成多项式++++++++++++++++++

% 维特比译码器(译卷积码)

G_Vit = [1 1 1 1 0 1 0 1 1; 1 0 1 1 1 0 0 0 1];

% 生成矩阵的长度

K = size(G_Vit, 2);

% 输出码片数

L = size(G_Vit, 1);

%++++++++++++++++++++++++++++++++++++++++++++++++++++++

%++++++++++++++++++++++Walsh矩阵++++++++++++++++++++++++ % 规定需要的Walsh序列长度

WLen = 64;

% 生成64 bit Walsh序列[1010.....]

Walsh = reshape([1;0]*ones(1, WLen/2), WLen , 1);

%Walsh = zeros(WLen ,1);

%++++++++++++++++++++++++++++++++++++++++++++++++++++++

%++++++++++++++++++扩频调制PN码的生成多项式++++++++++++++ %Gi = [ 1 0 1 0 0 0 1 1 1 0 1 0 0 0 0 1]';

%Gq = [ 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1]';

% I信道扩频PN序列生成多项式

Gi_ind = [15, 13, 9, 8, 7, 5, 0]';

% I信道扩频PN序列生成多项式

Gq_ind = [15, 12, 11, 10, 6, 5, 4, 3, 0]';

% 初始化序列Gi(16 bit,全零)

Gi = zeros(16, 1);

% 根据生成多项式Gi_ind将对应位置1

Gi(16-Gi_ind) = ones(size(Gi_ind));

% 初始化I路信道PN码生成器的初始状态

Zi = [zeros(length(Gi)-1, 1); 1];

% 初始化序列Gi(16 bit,全零)

Gq = zeros(16, 1);

% 根据生成多项式Gq_ind将对应位置1,得到二进制生成多项式

Gq(16-Gq_ind) = ones(size(Gq_ind));

% Q路信道PN码生成器的初始状态

Zq = [zeros(length(Gq)-1, 1); 1];

%++++++++++++++++++++++++++++++++++++++++++++++++++++++

%+++++++++++++++++++扰码生成多项式++++++++++++++++++++++

% 扰码序列生成多项式

Gs_ind = [42, 35, 33, 31, 27, 26, 25, 22, 21, 19, 18, 17, 16, 10, 7, 6, 5, 3, 2, 1, 0]'; % 初始化序列Gs

Gs = zeros(43, 1);

% 根据生成多项式Gs_ind将对应位置1,得到二进制生成多项式

Gs(43-Gs_ind) = ones(size(Gs_ind));

% 长序列生成器的初始状态

Zs = [zeros(length(Gs)-1, 1); 1];

%++++++++++++++++++++++++++++++++++++++++++++++++++++++ %++++++++++++++++++++++AWGN信道++++++++++++++++++++++++ % 扩频增益

EbEc = 10*log10(ChipRate/BitRate);

%

EbEcVit = 10*log10(L);

% 仿真信噪比范围(dB)

% EbNo = [-2 : 0.5 : 6.5];

EbNo = 2;

%++++++++++++++++++++++++++++++++++++++++++++++++++++++ %------------------------------------------------------

%-------------------------主程序-------------------------

% 初始化向量

% ErrorsB

% ErrorsC

% NN

% 输出信息说明采用的维特比译码判决类型

if (SD == 1)

fprintf('\n SOFT Decision Viterbi Decoder\n\n');

else

fprintf('\n HARD Decision Viterbi Decoder\n\n');

end

% 输出当前仿真信噪比

fprintf('\nProcessing %1.1f (dB)', EbNo);

%++++++++++++++++++++++发射机+++++++++++++++++++++++ TxData = (randn(N, 1)>0);

% 输出已编码、交织并加扰的消息比特与所用到的扰码

%(码率:19.2 kbps)

[TxChips, Scrambler] = PacketBuilder(TxData, G_Vit, Gs);

% 下面进行扩频调制,调制后码率为1.2288Mcps

[x PN MF] = Modulator(TxChips, MFType, Walsh);

%++++++++++++++++++++++++++++++++++++++++++++++++++++++ %++++++++++++++++++++++++信道+++++++++++++++++++++++++++ %产生高斯白噪声

noise = 1/sqrt(2)*sqrt(R/2)*( randn(size(x)) +...

j*randn(size(x)))*10^(-(EbNo - EbEc)/20);

%j*randn(size(x)))*10^(-(EbNo(i) - EbEc)/20);

%向已调信号中混入加性高斯白噪声

r = x+noise;

%++++++++++++++++++++++++++++++++++++++++++++++++++++++ %+++++++++++++++++++++++++接收机++++++++++++++++++++++++ % 软判决,输出速率为19.2 Kcps 经过卷积编码的序列

RxSD = Demodulator(r, PN, MF, Walsh);

% 对Rake接收机解调后的信号进行过零比较

RxHD = (RxSD>0);

信号与系统的MATLAB仿真

信号与系统的MATLAB 仿真 一、信号生成与运算的实现 1.1 实现)3(sin )()(π±== =t t t t S t f a )(sin )sin()sin(sin )()(t c t t t t t t t S t f a '=' '== ==πππ π ππ m11.m t=-3*pi:0.01*pi:3*pi; % 定义时间范围向量t f=sinc(t/pi); % 计算Sa(t)函数 plot(t,f); % 绘制Sa(t)的波形 运行结果: 1.2 实现)10() sin()(sin )(±== =t t t t c t f ππ m12.m t=-10:0.01:10; % 定义时间范围向量t f=sinc(t); % 计算sinc(t)函数 plot(t,f); % 绘制sinc(t)的波形 运行结果: 1.3 信号相加:t t t f ππ20cos 18cos )(+= m13.m syms t; % 定义符号变量t f=cos(18*pi*t)+cos(20*pi*t); % 计算符号函数f(t)=cos(18*pi*t)+cos(20*pi*t) ezplot(f,[0 pi]); % 绘制f(t)的波形 运行结果:

1.4 信号的调制:t t t f ππ50cos )4sin 22()(+= m14.m syms t; % 定义符号变量t f=(2+2*sin(4*pi*t))*cos(50*pi*t) % 计算符号函数f(t)=(2+2*sin(4*pi*t))*cos(50*pi*t) ezplot(f,[0 pi]); % 绘制f(t)的波形 运行结果: 1.5 信号相乘:)20cos()(sin )(t t c t f π?= m15.m t=-5:0.01:5; % 定义时间范围向量 f=sinc(t).*cos(20*pi*t); % 计算函数f(t)=sinc(t)*cos(20*pi*t) plot(t,f); % 绘制f(t)的波形 title('sinc(t)*cos(20*pi*t)'); % 加注波形标题 运行结果:

Matlab通信系统仿真实验报告

Matlab通信原理仿真 学号: 2142402 姓名:圣斌

实验一Matlab 基本语法与信号系统分析 一、实验目的: 1、掌握MATLAB的基本绘图方法; 2、实现绘制复指数信号的时域波形。 二、实验设备与软件环境: 1、实验设备:计算机 2、软件环境:MATLAB R2009a 三、实验内容: 1、MATLAB为用户提供了结果可视化功能,只要在命令行窗口输入相应的命令,结果就会用图形直接表示出来。 MATLAB程序如下: x = -pi::pi; y1 = sin(x); y2 = cos(x); %准备绘图数据 figure(1); %打开图形窗口 subplot(2,1,1); %确定第一幅图绘图窗口 plot(x,y1); %以x,y1绘图 title('plot(x,y1)'); %为第一幅图取名为’plot(x,y1)’ grid on; %为第一幅图绘制网格线 subplot(2,1,2) %确定第二幅图绘图窗口 plot(x,y2); %以x,y2绘图 xlabel('time'),ylabel('y') %第二幅图横坐标为’time’,纵坐标为’y’运行结果如下图: 2、上例中的图形使用的是默认的颜色和线型,MATLAB中提供了多种颜色和线型,并且可以绘制出脉冲图、误差条形图等多种形式图: MATLAB程序如下: x=-pi:.1:pi; y1=sin (x); y2=cos (x); figure (1); %subplot (2,1,1); plot (x,y1); title ('plot (x,y1)'); grid on %subplot (2,1,2); plot (x,y2);

春MATLAB仿真期末大作业

MATLAB仿真 期末大作业 姓名:班级:学号:指导教师:

2012春期末大作业 题目:设单位负反馈控制系统前向通道传递函数由)()(21s G s G 和串联,其中: ) 1(1)()(21++==s A s G s K s G A 表示自己学号最后一位数(可以是零),K 为开环增益。要求: (1)设K=1时,建立控制系统模型,并绘制阶跃响应曲线(用红色虚线,并标注坐标和标题);求取时域性能指标,包括上升时间、超调量、调节时间、峰值时间; (2)在第(1)问中,如果是在命令窗口绘制阶跃响应曲线,用in1或者from workspace 模块将命令窗口的阶跃响应数据导入Simulink 模型窗口,用示波器显示阶跃响应曲线;如果是在Simulink 模型窗口绘制阶跃响应曲线,用out1或者to workspace 模块将Simulink 模型窗口的阶跃响应数据导入命令窗口并绘制阶跃响应曲线。 (3)用编程法或者rltool 法设计串联超前校正网络,要求系统在单位斜坡输入信号作用时,速度误差系数小于等于0.1rad ,开环系统截止频率s rad c /4.4''≥ω,相角裕度大于等于45度,幅值裕度大于等于10dB 。

仿真结果及分析: (1)、(2)、将Simulink模型窗口的阶跃响应数据导入命令窗口并绘制阶跃响应曲线 通过在Matlab中输入命令: >> plot(tout,yout,'r*-') >> title('阶跃响应曲线') 即可得出系统阶跃响应曲线,如下: 求取该控制系统的常用性能指标:超调量、上升时间、调节时间、峰值时间的程序如下: G=zpk([],[0,-1],5)。 S=feedback(G,1)。

matlab控制系统仿真.

课程设计报告 题目PID控制器应用 课程名称控制系统仿真院部名称龙蟠学院 专业自动化 班级M10自动化 学生姓名 学号 课程设计地点 C208 课程设计学时一周 指导教师应明峰 金陵科技学院教务处制成绩

一、课程设计应达到的目的 应用所学的自动控制基本知识与工程设计方法,结合生产实际,确定系统的性能指标与实现方案,进行控制系统的初步设计。 应用计算机仿真技术,通过在MATLAB软件上建立控制系统的数学模型,对控制系统进行性能仿真研究,掌握系统参数对系统性能的影响。 二、课程设计题目及要求 1.单回路控制系统的设计及仿真。 2.串级控制系统的设计及仿真。 3.反馈前馈控制系统的设计及仿真。 4.采用Smith 补偿器克服纯滞后的控制系统的设计及仿真。 三、课程设计的内容与步骤 (1).单回路控制系统的设计及仿真。 (a)已知被控对象传函W(s) = 1 / (s2 +20s + 1)。 (b)画出单回路控制系统的方框图。 (c)用MatLab的Simulink画出该系统。

(d)选PID调节器的参数使系统的控制性能较好,并画出相应的单位阶约响应曲线。注明所用PID调节器公式。PID调节器公式Wc(s)=50(5s+1)/(3s+1) 给定值为单位阶跃响应幅值为3。 有积分作用单回路控制系统PID控制器取参数分别为:50 2 5 有积分作用单回路控制系统PID控制器取参数分别为:50 0 5

大比例作用单回路控制系统PID控制器取参数分别为:50 0 0 (e)修改调节器的参数,观察系统的稳定性或单位阶约响应曲线,理解控制器参数对系统的稳定性及控制性能的影响? 答:由上图分别可以看出无积分作用和大比例积分作用下的系数响应曲线,这两个PID调节的响应曲线均不如前面的理想。增大比例系数将加快系统的响应,但是过大的比例系数会使系统有比较大的超调,并产生振荡,使稳定性变坏;

电机学matlab仿真大作业报告

. 基于MATLAB的电机学计算机辅助分析与仿真 实验报告

一、实验内容及目的 1.1 单相变压器的效率和外特性曲线 1.1.1 实验内容 一台单相变压器,N S =2000kVA, kV kV U U N N 11/127/21=,50Hz ,变压器的参数 和损耗为008.0* ) 75(=C k o R ,0725.0*=k X ,kW P 470=,kW P C KN o 160)75(=。 (1)求此变压器带上额定负载、)(8.0cos 2滞后=?时的额定电压调整率和额定效率。 (2)分别求出当0.1,8.0,6.0,4.0,2.0cos 2=?时变压器的效率曲线,并确定最大效率和达到负载效率时的负载电流。 (3)分析不同性质的负载(),(8.0cos 0.1cos ),(8.0cos 222超前,滞后===???)对变压器输出特性的影响。 1.1.2 实验目的 (1)计算此变压器在已知负载下的额定电压调整率和额定效率 (2)了解变压器效率曲线的变化规律 (3)了解负载功率因数对效率曲线的影响 (4)了解变压器电压变化率的变化规律 (5)了解负载性质对电压变化率特性的影响 1.1.3 实验用到的基本知识和理论 (1)标幺值、效率区间、空载损耗、短路损耗等概念 (2)效率和效率特性的知识 (3)电压调整率的相关知识 1.2串励直流电动机的运行特性 1.2.1实验内容 一台16kw 、220V 的串励直流电动机,串励绕组电阻为0.12Ω,电枢总电阻为0.2Ω。电动势常数为.电机的磁化曲线近似的为直线。其中为比例常数。假设电枢电流85A 时,磁路饱和(为比较不同饱和电流对应的效果,饱和电流可以自己改变)。

MATLAB仿真实验全部

实验一 MATLAB 及仿真实验(控制系统的时域分析) 一、实验目的 学习利用MATLAB 进行控制系统时域分析,包括典型响应、判断系统稳定性和分析系统的动态特性; 二、预习要点 1、 系统的典型响应有哪些? 2、 如何判断系统稳定性? 3、 系统的动态性能指标有哪些? 三、实验方法 (一) 四种典型响应 1、 阶跃响应: 阶跃响应常用格式: 1、)(sys step ;其中sys 可以为连续系统,也可为离散系统。 2、),(Tn sys step ;表示时间围0---Tn 。 3、),(T sys step ;表示时间围向量T 指定。 4、),(T sys step Y =;可详细了解某段时间的输入、输出情况。 2、 脉冲响应: 脉冲函数在数学上的精确定义:0 ,0)(1)(0 ?==?∞ t x f dx x f 其拉氏变换为:)()()()(1 )(s G s f s G s Y s f === 所以脉冲响应即为传函的反拉氏变换。 脉冲响应函数常用格式: ① )(sys impulse ; ② ); ,();,(T sys impulse Tn sys impulse ③ ),(T sys impulse Y = (二) 分析系统稳定性 有以下三种方法: 1、 利用pzmap 绘制连续系统的零极点图; 2、 利用tf2zp 求出系统零极点; 3、 利用roots 求分母多项式的根来确定系统的极点 (三) 系统的动态特性分析 Matlab 提供了求取连续系统的单位阶跃响应函数step 、单位脉冲响应函数impulse 、零输入响应函数initial 以及任意输入下的仿真函数lsim.

matlab 大作业

上海电力学院 通信原理Matlab仿真 实验报告 实验名称: 8QAM误码率仿真 试验日期: 2014年 6月3日 专业:通信工程 姓名:罗侃鸣 班级: 2011112班 学号: 20112272

一、实验要求 写MATLAB程序,对图示的信号星座图完成M=8的QAM通信系统Monte Carlo仿真,在不同SNRindB=0:15时,对N=10000(3比特)个符号进行仿真。画出该QAM系统的符号误码率。 二、实验原理 1 QAM调制原理 QAM(Quadrature Amplitude Modulation)正交幅度调制技术,是用两路独立的基带信号对两个相互正交的同频载波进行抑制载波双边带调幅,利用这种已调信号的频谱在同一带宽内的正交性,实现两路并行的数字信息的传输。该调制方式通常有8QAM,16QAM,64QAM。 QAM调制实际上就是幅度调制和相位调制的组合,相位+ 幅度状态定义了一个数字或数字的组合。QAM的优点是具有更大的符号率,从而可获得更高的系统效率。通常由符号率确定占用带宽。因此每个符号的比特(基本信息单位)越多,频带效率就越高。 调制时,将输入信息分成两部分:一部分进行幅度调制;另一部分进行相位调制。对于星型8QAM信号,每个码元由3个比特组成,可将它分成第一个比特和后两个个比特两部分。前者用于改变信号矢量的振幅,后者用于差分相位调制,通过格雷编码来改变当前码元信号矢量相位与前一码元信号矢量相位之间的相位差。 QAM是一种高效的线性调制方式,常用的是8QAM,16QAM,64QAM等。当随着M 的增大,相应的误码率增高,抗干扰性能下降。 2 QAM星座图 QAM调制技术对应的空间信号矢量端点分布图称为星座图。QAM的星座图呈现星状分

MATLAB Simulink系统建模与仿真 实验报告

MATLAB/Simulink 电力系统建模与仿真 实验报告 姓名:****** 专业:电气工程及其自动化 班级:******************* 学号:*******************

实验一无穷大功率电源供电系统三相短路仿真 1.1 无穷大功率电源供电系统仿真模型构建 运行MATLAB软件,点击Simulink模型构建,根据电路原理图,添加下列模块: (1)无穷大功率电源模块(Three-phase source) (2)三相并联RLC负荷模块(Three-Phase Parallel RLC Load) (3)三相串联RLC支路模块(Three-Phase Series RLC Branch) (4)三相双绕组变压器模块(Three-Phase Transformer (Two Windings)) (5)三相电压电流测量模块(Three-Phase V-I Measurement) (6)三相故障设置模块(Three-Phase Fault) (7)示波器模块(Scope) (8)电力系统图形用户界面(Powergui) 按电路原理图连接线路得到仿真图如下: 1.2 无穷大功率电源供电系统仿真参数设置 1.2.1 电源模块 设置三相电压110kV,相角0°,频率50Hz,接线方式为中性点接地的Y形接法,电源电阻0.00529Ω,电源电感0.000140H,参数设置如下图:

1.2.2 变压器模块 变压器模块参数采用标幺值设置,功率20MVA,频率50Hz,一次测采用Y型连接,一次测电压110kV,二次侧采用Y型连接,二次侧电压11kV,经过标幺值折算后的绕组电阻为0.0033,绕组漏感为0.052,励磁电阻为909.09,励磁电感为106.3,参数设置如下图: 1.2.3 输电线路模块 根据给定参数计算输电线路参数为:电阻8.5Ω,电感0.064L,参数设置如下图: 1.2.4 三相电压电流测量模块 此模块将在变压器低压侧测量得到的电压、电流信号转变成Simulink信号,相当于电压、电流互感器的作用,勾选“使用标签(Use a label)”以便于示波器观察波形,设置电压标签“Vabc”,电流标签“Iabc”,参数设置如下图:

matlab机电系统仿真大作业

一曲柄滑块机构运动学仿真 1、设计任务描述 通过分析求解曲柄滑块机构动力学方程,编写matlab程序并建立Simulink 模型,由已知的连杆长度和曲柄输入角速度或角加速度求解滑块位移与时间的关系,滑块速度和时间的关系,连杆转角和时间的关系以及滑块位移和滑块速度与加速度之间的关系,从而实现运动学仿真目的。 2、系统结构简图与矢量模型 下图所示是只有一个自由度的曲柄滑块机构,连杆与长度已知。 图2-1 曲柄滑块机构简图 设每一连杆(包括固定杆件)均由一位移矢量表示,下图给出了该机构各个杆件之间的矢量关系 图2-2 曲柄滑块机构的矢量环

3.匀角速度输入时系统仿真 3.1 系统动力学方程 系统为匀角速度输入的时候,其输入为输出为;。 (1) 曲柄滑块机构闭环位移矢量方程为: (2)曲柄滑块机构的位置方程 (3)曲柄滑块机构的运动学方程 通过对位置方程进行求导,可得 由于系统的输出是与,为了便于建立A*x=B形式的矩阵,使x=[], 将运动学方程两边进行整理,得到 将上述方程的v1与w3提取出来,即可建立运动学方程的矩阵形式 3.2 M函数编写与Simulink仿真模型建立 3.2.1 滑块速度与时间的变化情况以及滑块位移与时间的变化情况 仿真的基本思路:已知输入w2与,由运动学方程求出w3和v1,再通过积分,即可求出与r1。 (1)编写Matlab函数求解运动学方程 将该机构的运动学方程的矩阵形式用M函数compv(u)来表示。 设r2=15mm,r3=55mm,r1(0)=70mm,。 其中各个零时刻的初始值可以在Simulink模型的积分器初始值里设置

M函数如下: function[x]=compv(u) %u(1)=w2 %u(2)=sita2 %u(3)=sita3 r2=15; r3=55; a=[r3*sin(u(3)) 1;-r3*cos(u(3)) 0]; b=[-r2*u(1)*sin(u(2));r2*u(1)*cos(u(2))]; x=inv(a)*b; (2)建立Simulink模型 M函数创建完毕后,根据之前的运动学方程建立Simulink模型,如下图: 图3-1 Simulink模型 同时不要忘记设置r1初始值70,如下图: 图3-2 r1初始值设置

实验一 典型环节的MATLAB仿真汇总

实验一 典型环节的MATLAB 仿真 一、实验目的 1.熟悉MATLAB 桌面和命令窗口,初步了解SIMULINK 功能模块的使用方法。 2.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。 3.定性了解各参数变化对典型环节动态特性的影响。 二、SIMULINK 的使用 MATLAB 中SIMULINK 是一个用来对动态系统进行建模、仿真和分析的软件包。利用SIMULINK 功能模块可以快速的建立控制系统的模型,进行仿真和调试。 1.运行MATLAB 软件,在命令窗口栏“>>”提示符下键入simulink 命令,按Enter 键或在工具栏单击按钮,即可进入如图1-1所示的SIMULINK 仿真 环境下。 2.选择File 菜单下New 下的Model 命令,新建一个simulink 仿真环境常规模板。 3.在simulink 仿真环境下,创建所需要的系统 三、实验内容 按下列各典型环节的传递函数,建立相应的SIMULINK 仿真模型,观察并记录其单位阶跃响应波形。 ① 比例环节1)(1=s G 和2)(1=s G 实验处理:1)(1=s G SIMULINK 仿真模型

波形图为: 实验处理:2)(1=s G SIMULINK 仿真模型 波形图为: 实验结果分析:增加比例函数环节以后,系统的输出型号将输入信号成倍数放大. ② 惯性环节11)(1+= s s G 和15.01)(2+=s s G 实验处理:1 1 )(1+=s s G SIMULINK 仿真模型

波形图为: 实验处理:1 5.01 )(2+= s s G SIMULINK 仿真模型 波形图为: 实验结果分析:当1 1 )(1+= s s G 时,系统达到稳定需要时间接近5s,当

电机大作业(MATLAB仿真-电机特性曲线)

电机大作业 专业班级:电气XXXX 姓名:XXX 学号:XXX 指导老师:张威

一、研究课题(来源:教材习题 4-18 ) 1. 74 、R 2 0.416 、X 2 3.03 、R m 6. 2 X m 75 。电动机的机械损耗p 139W,额定负载时杂散损耗p 320W, 试求额定负载时的转差率、定子电流、定子功率因数、电磁转矩、输出转矩和效 率。 二、编程仿真 根据T 形等效电路: 3D - R Q 运用MATLAB 进行绘图。MATLAB 文本中,P N PN ,U N UN ,尺 R 1, X 1 X1 , R 2 R 2,X 2 X 2,R m Rm, X m Xm ,p pjixiesunh ao , p pzasansunhao 。定子电流I11,定子功率因数 Cosangle1,电磁转矩Te , 效率 Xiaolv 。 1.工作特性曲线绘制 MATLA 文本: R1=0.715;X 仁1.74;Rm=6.2;Xm=75;R2=0.416;X2=3.03;pjixiesu nhao=139; pzasa nsu nhao=320;p=2;m 仁 3; ns=1500;PN=17000;UN=380;fN=50; Z1=R1+j*X1; Zm=Rm+j*Xm; for i=1:2500 s=i/2500; nO=n s*(1-s); Z2=R2/s+j*X2; Z=Z1+Zm*Z2/(Zm+Z2); 有一台三相四极的笼形感应电动机, 参数为P N 17kW 、U N 380V (△联 Rm 结)、尺 0. 715 、X j lcr S

U1=UN; I1=U1/Z; l110=abs(l1); An gle 仁an gle(ll); Cosa ngle10=cos(A ngle1); P仁3*U1*l110*Cosa ngle10; l2=l1*Zm/(Zm+Z2); Pjixie=m1*(abs(I2))A2*(1-s)/s*R2; V=(1-s)*pi*fN; Te0=Pjixie/V; P20=Pjixie-pjixies un hao-pzasa nsun hao; Xiaolv0=P20/P1; P2(i)=P20; n (i)=n0; l11(i)=l110; Cosa ngle1(i)=Cosa ngle10; Te(i)=Te0; Xiaolv(i)=Xiaolv0; hold on; end figure(1) plot(P2, n); xlabel('P2[W]');ylabel(' n[rpm]'); figure(2) plot(P2,l11); xlabel('P2[W]');ylabel('l1[A]'); figure(3) plot(P2,Cosa nglel); xlabel('P2[W]');ylabel('go nglvyi nshu'); figure(4) plot(P2,Te); xlabel('P2[W]');ylabel('Te[Nm]'); figure(5) plot(P2,Xiaolv); xlabel('P2[W]');ylabel('xiaolv');

MATLAB与系统仿真实验指导书

实验指导书(标准格式) 《MATLAB与系统仿真》 实验指导书 课程编号:ME2121025课程名称:MATLAB与系统仿真适应专业:电气工程及其自动化课程类别:限选 实验教学种类:上机课程总学时:30+6 实验学时:6 执笔人:勾燕洁 西安电子科技大学机电工程学院 2006 年9 月

目录 实验一MA TLAB的基本使用及矩阵操作------------------- 3 实验二MA TLAB编程与图形处理---------------------------- 9 实验三MA TLAB中的数值运算与系统仿真---------------- 15

实验一MA TLAB的基本使用及矩阵操作 一、实验目的和要求 熟悉MA TLAB的界面和基本操作,掌握矩阵的建立方法及各种运算。 1.熟悉MA TLAB软件的界面和帮助系统。 2.掌握MA TLAB软件中关于矩阵建立、矩阵初等变换以及矩阵算术、关系、逻辑运算的各种命令。 3.掌握MA TLAB软件中M函数和M文件的编写,以及程序结构与控制,学会编写一般程序。 二、实验内容 1.启动与退出 2.数、数组、矩阵的输入 3.MA TLAB的基本命令 4.矩阵大小的测试 5.矩阵元素的操作 6.特殊矩阵的产生 7.矩阵的算术运算 8.矩阵的关系运算 9.矩阵的逻辑运算 10.常用函数 三、实验仪器、设备(软、硬件)及仪器使用说明 PC机一台,注意正确开、关机及打开软件。 四、实验原理 无 五、实验方法与步骤 1.启动与退出 双击MA TLAB图标,进入MA TLAB命令窗口,即可输入命令,开始运算; 观察各个窗口以及菜单; 单击File菜单中的Exit,或使用MATLAB的Exit命令退出。

运动控制MATLAB仿真

大作业: 直流双闭环调速MATLAB仿真 运动控制技术课程名称: 名:姓电气学院院:学 自动化业:专 号:学 孟濬指导教师: 2012年6月2日

------------------------------------- -------------学浙大江 李超 一、Matlab仿真截图及模块功能描述 Matlab仿真截图如下,使用Matlab自带的直流电机模型: 模块功能描述: ⑴电机模块(Discrete DC_Machine):模拟直流电机 ⑵负载转矩给定(Load Torque):为直流电机添加负载转矩 ⑶Demux:将向量信号分离出输出信号 ⑷转速给定(Speed Reference):给定转速 ⑸转速PI调节(Speed Controller):转速PI调节器,对输入给定信号与实际信号

的差值进行比例和积分运算,得到的输出值作为电流给定信号。改变比例和积分运算系数可以得到不同的PI控制效果。 ⑹电流采样环节(1/z):对电流进行采样,并保持一个采样周期 ⑺电流滞环调节(Current Controller):规定一个滞环宽度,将电流采样值与给定值进行对比,若:采样值>给定值+0.5*滞环宽度,则输出0; 若:采样值<给定值—0.5*滞环宽度,则输出1; 若:给定值—0.5*滞环宽度<采样值<给定值+0.5*滞环宽度,则输出不变 输出值作为移相电压输入晶闸管斩波器控制晶闸管触发角 :根据输入电压改变晶闸管触发角,从而改变电机端电压。GTO⑻晶闸管斩波.⑼续流二极管D1:在晶闸管关断时为电机续流。 ⑽电压传感器Vd:测量电机端电压 ⑾示波器scope:观察电压、电流、转速波形 系统功能概括如下:直流电源通过带GTO的斩波器对直流电机进行供电,输出量电枢电流ia和转速wm通过电流环和转速环对GTO的通断进行控制,从而达到对整个电机较为精确的控制。 下面对各个部分的功能加以详细说明: (1)直流电机 双击电动机模块,察看其参数:

一阶、二阶系统时域和频域仿真

西安交通大学 基于MATLAB/Simulink 的一阶、二阶系统的时域和频 域仿真 ——以单位阶跃信号为输入信号 日期:2013年4月 一阶系统时域和频域仿真 1、建立一阶系统典型数学模型 ()1 1 G s Ts =+ 2、建立simulink 仿真方框图

1T.s+1 Transfer Fcn Step Scope ① 时间常数T=1时,一阶系统时域响应为 12345678 910 00.5 1 一阶系统时域相应(T=1) Matlab 程序: %一阶系统仿真编程 num=[1]; den=[1 1]; bode(num,den); grid on ; gtext('低频段频率-20dB/dec'); 运行程序,有时间常数T=1时,一阶系统的频域响应为

10 -210 -1 10 10 1 10 2 -90-45 一阶系统频域响应 P h a s e (d e g ) Bode Di a gram Frequency (rad/s) -40-30-20-100 低频段斜率-20dB/dec System: sys Frequency (rad/s): 1.01Magni t ude (dB): -3.07 M a g n i t u d e (d B ) ② 时间常数T=3时,一阶系统单位阶跃时域响应 12345678910 00.5 1 一阶系统单位阶跃响应(T=3) Matlab 程序: %一阶系统仿真编程 num=[1]; den=[3 1]; bode(num,den);

grid on ; gtext('低频段频率-20dB/dec'); 运行程序,有时间常数T=3时,一阶系统的频域响应为 10 -210 -1 10 10 1 -90-45 P h a s e (d e g ) Bode Di a gram Frequency (rad/s) -30-20-100 低频段频率-20dB/dec System: sys Frequency (rad/s): 0.334Magni t ude (dB): -3.03 M a g n i t u d e (d B ) 3、分析以上一阶系统在不同时间常数下的单位阶跃响应,可以看出时间常数越小,系统响应越快;而且一阶系统的转角频率为1/T ,在转角频率以上时,幅频特性曲线以-20dB/dec 下降,而相频特性以0°和90°为渐近线。

基于MATLAB的系统仿真实验

基于MATLAB的系统仿真实验 实验指导书 新乡学院 二○○八年三月

说明 MATLAB是MATrix LABoratory的缩写,是一种基于矩阵的数学与工程计算系统,可以用作动态系统的建模与仿真。研究系统的结构和参数的变化对系统性能的影响可利用MATLAB强大的计算和作图功能,因此本实验采用MATLAB仿真研究连续控制系统和离散控制系统的性能分析过程。通过该实验提高学生对控制系统的分析与设计能力,加深对《自动控制原理》课程内容的理解。 由于学时有限,该实验由同学们参考有关MATLAB应用的书籍利用课后时间完成。

第一部分 基于MATLAB 连续系统的仿真 一、 实验目的 在研究系统的结构和参数的变化对系统性能的影响时,采用解析和作图的方法比较麻烦,而且误差也大,用MATLAB 仿真实现则简单方便,精度高。本实验采用MATLAB 实现控制系统的数学描述、控制系统的时域分析及根轨迹和频率特性分析。通过该实验,加深学生对系统阶次,型号,参数与系统性能的关系的理解。 二、实验环境 在计算机Windows 环境下安装好MATLAB6.3以上版本后,双击MATLAB 图标或成“开始”菜单打开MATLAB ,即可进入MATLAB 集成环境。 三、MATLAB 应用实例 1.拉氏变换和反变换 例 求22)(2++=t t t f 的拉氏变换 解 键入 syms s t; ft=t^2+2*t+2; st=laplace(ft,t,s) 运行结果为 st= 2/s^3+2/s^2+2/s 例 求) 2)(34(6 )(2 ++++= s s s s s F 的拉氏反变换 解 键入 syms s t; Fs=(s+6)/(s^2+4*s+3)/(s+2); ft=ilaplace(Fs,s,t) 运行结果为 ft= 3/2*exp(-3*t)+5/2*exp(-t)-4*exp(-2*t) 2。求根运算 例 求多项式 43)(2 3 ++=s s s p 的根,再由根建多项式。 解 键入 p=[1 3 0 4]; r=root(p) 运行结果为 r= -3.3553 0.1777+1.0773i 1.7777-1.0773i

华科matlab大作业

MATLAB语言、控制系统分析与设计 大作业 升降压斩波电路MATLAB仿真 专业:电气工程及其自动化 班级: 设计者: 学号: 评分: 华中科技大学电气与电子工程学院 2016 年1月

评分栏

目录 一、引言 (4) 二、电路设计与仿真 (4) 三、仿真结果及分析 (7) 四、深入讨论 (10) 五、总结 (10) 六、参考资料 (11)

升降压斩波电路MATLAB 仿真 一.引言 Buck/Boost 变换器是输出电压可低于或高于输入电压的一种单管直流变换器,其主电路与Buck 或Boost 变换器所用元器件相同,也有开关管、二极管、电感和电容构成。与Buck 和Boost 电路不同的是,电感L 在中间,不在输出端也不在输入端,且输出电压极性与输入电压相反。开关管也采用PWM 控制方式。Buck/Boost 变换器也有电感电流连续喝断续两种工作方式,在此只讨论电感电流在连续状态下的工作模式。 二.电路设计与仿真 1、电路原理 当可控开关V 处于通态时,电源E 经V 向电感L 供电使其储存能量,此时电流为i1。同时,电容C 维持输出电压基本恒定并向负载R 供电。此后,使V 关断,电感L 中储存的能量向负载L 释放,电流为i2。负载电压极性为上正下负,与电源电压极性相反。 稳态时,一个周期T 内电感L 两端电压UL 对时间积分为零,即 当V 处于通态期间,UL=E ;而当V 处于断态期间,UL=-Uo 。于是 所以,输出电压为 =?dt T L U off o on t U Et =E E t T t E t t U on on off on o α α -=-== 1

MATLAB与系统仿真实验手册

MATLAB与控制系统仿真实验指导书 河北大学电子信息工程学院 2006年9月

目录 实验一MATLAB基本操作与基本运算 (1) 实验二M文件及数值积分仿真方法设计 (3) 实验三MATLAB 的图形绘制 (4) 实验四函数文件设计和控制系统模型的描述 (6) 实验五控制系统的分析与设计 (7) 实验六连续系统离散化仿真方法设计 (8) 实验七SIMULINK 仿真 (9) 实验八SIMULINK 应用进阶 (10) 附录MATLAB常用函数 (12)

实验一MATLAB基本操作与基本运算 一、实验目的及要求: 1.熟悉MATLAB6.5的开发环境; 2.掌握MATLAB6.5的一些常用命令; 3.掌握矩阵、变量、表达式的输入方法及各种基本运算。 二、实验内容: 1.熟悉MATLAB6的开发环境: ①MATLAB的各种窗口: 命令窗口、命令历史窗口、启动平台窗口、工作空间窗口、当前路径窗口。 图1 MA TLAB界面窗口 ②路径的设置: 建立自己的文件夹,加入到MA TLAB路径中,并保存。 设置当前路径,以方便文件管理。 ③改变命令窗口数据的显示格式 >> format short >> format long

然后键入特殊变量:pi (圆周率),比较显示结果。 2.掌握MATLAB 常用命令 >> who %列出工作空间中变量 >> whos %列出工作空间中变量,同时包括变量详细信息 >>save test %将工作空间中变量存储到test.mat 文件中 >>load test %从test.mat 文件中读取变量到工作空间中 >>clear %清除工作空间中变量 >>help 函数名 %对所选函数的功能、调用格式及相关函数给出说明 >>lookfor %查找具有某种功能的函数但却不知道该函数的准确名称 如: lookfor Lyapunov 可列出与Lyapunov 有关的所有函数。 3. 在MATLAB 的命令窗口计算: 1) )2sin(π 2) 5.4)4.05589(÷?+ 4. 设计M 文件计算: 已知 求出: 1) a+b a-b a+b*5 a-b+I (单位阵) 2) a*b a.*b a/b 3) a^2 a.^2 注意:点运算 . 的功能,比较结果。 5. 设计M 文件计算: x=0:0.1:10 当sum>1000时停止运算,并显示求和结果及计算次数。 三、实验报告要求: 1)体会1、2的用法; 2)对3、4、5写出程序及上机的结果。 ?? ??? ?????=987654321a ?? ?? ? ?????=300120101b ) 2(100 2 i i i x x sum -=∑=

MATLAB大作业

安阳工学院 专业课课程大作业 课程名称(中文) MATLAB编程应用成绩 姓名黄红伟 班级通信工程 学号 201002030060 日期 2012年12月23日

数字基带传输系统的仿真实现 [摘要]:MATLAB 语言是一种数据分析和处理功能十分强大的计算机应用软件 ,它可以将声音文件变换为离散的数据文件 , 然后利用其强大的矩阵运算能力处理数据 ,如数字滤波、傅里叶变换、时域和频域分析、声音回放以及各种图的呈现等 , 信号处理是MATLAB 重要应用的领域之一。数字通信系统有两种主要的通信模式:数字频带传输通信系统,数字基带传输通信系统。数字基带传输系统指不经载波调制而直接传输数字基带信号的系统,常用于传输距离不太远的情况下。本次大作业通过分析数字基带信号传输的特性,运用数值仿真的方法,对数字基带传输系统作了模拟。 [关键词]:MATLAB;数字基带传输系统 1.背景介绍 20世纪60年代出现了数字传输技术,它采用了数字信号来传递信息,从此通信进入了数字化时代。目前,通信网已基本实现数字化,在我国公众通信网中传输的信号主要是数字信号。数字通信技术的应用越来越广泛,例如数字移动通信、数字卫星通信、数字电视广播、数字光纤通信、数字微波通信、数字视频通信、多媒体通信等等。数字通信系统主要的两种通信模式:数字频带传输通信系统,数字基带传输通信系统。数字基带信号指未经调制的数字信号,它所占据的频谱是从零频或很低频率开始的。数字基带传输系统指不经载波调制而直接传输数字基带信号的系统,常用于传输距离不太远的情况下。 研究数字基带传输系统的原因:实际中,基带传输不如频带传输应用广泛,但对基带传输的研究仍有非常重要的意义。这是因为:第一,数字基带系统在近程数据通信系统中广泛采用;第二,数字基带系统的许多问题也是频带传输系统必须考虑的问题;第三,随着数字通信技术的发展,基带传输这种方式也有迅速发展的趋势,它不仅用于低速数据传输,而且还用于高速数据传输;第四,在理论上,任何一个线性调制的频带传输系统,总是可以有一个等效的基带载波调制系统所替代。因此,很有必要对基带传输系统进行综合系统的分析。 2.仿真理论基础 MA TLAB工具有很强的仿真能力可以仿真NR码、NRZ码、AMI码、PAM码等各种编码及分析其功率谱。同时可以仿真通信系统的应用。这里先简单介绍下仿真的理论基础。 2.1.时域抽样和频域抽样 若信号函数s(t)为定义在时间区间(-∞,+∞)上的连续函数,按区间[-T/2,T/2]截短为ST(t),再对ST(t)按时间间隔?t均匀取样,取样点数:N(t)=T/?t;仿真时用这个样值函数来表示S(t)。如果信号的最高频率为fH,那么必须有fH 〈〈0.5/?t,设为Bs,Bs=0.5/?t 称为仿真系统的系统带宽。 若信号s(t)的频谱S(f)为定义在频率区间(-∞,+∞)上的连续函数,按区间[-Bs,Bs]截断S(f),然后?f均匀取样。N(t)=2 Bs /?f=N;?f=1/T如果仿真程序设定的频域采样间隔是?f,那么就不能仿真截断时间1/?f的信号。2.2.频域分析函数t2f的功能是作傅立叶变换格式:X=t2f(x)函数f2t的功能是作傅立叶反变换格式:x=t2f(X)其中x是时域信号x(t)的截短抽样取得的取样值矢量。X是傅立叶X(f)的取样值矢量。 2.2.取样判决和误码率的测量 对于基带系统的研究,误码率是一个非常重要的概念,也是评价系统好坏的重要参数。在用matlab仿真系统中,在模拟实际的条件下,达到理想的误码率是我们的目标。

自控-二阶系统Matlab仿真

自动控制原理 二阶系统性能分析Matlab 仿真大作业附题目+ 完整报告内容

设二阶控制系统如图1所示,其中开环传递函数 ) 1(10 )2()(2+=+=s s s s s G n n ξωω 图1 图2 图3 要求: 1、分别用如图2和图3所示的测速反馈控制和比例微分控制两种方式改善系统的性能,如果要求改善后系统的阻尼比ξ =0.707,则和 分别取多少? 解: 由)1(10 )2()(2 += +=s s s s s G n n ξωω得10 21,10,102===ξωωn t K d T

对于测速反馈控制,其开环传递函数为:) 2()s (2 2n t n n K s s G ωξωω++=; 闭环传递函数为:2 2 2)2 (2)(n n n t n s K s s ωωωξωφ+++= ; 所以当n t K ωξ2 1+=0.707时,347.02)707.0(t =÷?-=n K ωξ; 对于比例微分控制,其开环传递函数为:)2()1()(2 n n d s s s T s G ξωω++=; 闭环传递函数为:) )2 1(2)1()(2 22 n n n d n d s T s s T s ωωωξωφ++++=; 所以当n d T ωξ2 1 +=0.707时,347.02)707.0(=÷?-=n d T ωξ; 2、请用MATLAB 分别画出第1小题中的3个系统对单位阶跃输入的响应图; 解: ①图一的闭环传递函数为: 2 22 2)(n n n s s s ωξωωφ++=,10 21 ,10n ==ξω Matlab 代码如下: clc clear wn=sqrt(10); zeta=1/(2*sqrt(10)); t=0:0.1:12; Gs=tf(wn^2,[1,2*zeta*wn,wn^2]); step(Gs,t)

MATLAB与系统仿真实验手册2010

实验一MATLAB基本操作与基本运算 (1) 实验二M文件及数值积分仿真方法设计 (3) 实验三MATLAB 的图形绘制 (4) 实验四函数文件设计和控制系统模型的描述 (6) 实验五控制系统的分析与设计 (7) 实验六连续系统离散化仿真方法设计 (8) 实验七SIMULINK 仿真 (9) 实验八SIMULINK 应用进阶 (10) 附录MATLAB常用函数 (11) 实验一MATLAB基本操作与基本运算 一、实验目的及要求: 1.熟悉MATLAB6.5的开发环境; 2.掌握MATLAB6.5的一些常用命令; 3.掌握矩阵、变量、表达式的输入方法及各种基本运算。 二、实验内容: 1.熟悉MATLAB6的开发环境: ①MATLAB的各种窗口: 命令窗口、命令历史窗口、启动平台窗口、工作空间窗口、当前路径窗口。

图1 MA TLAB 界面窗口 ②路径的设置: 建立自己的文件夹,加入到MA TLAB 路径中,并保存。 设置当前路径,以方便文件管理。 ③改变命令窗口数据的显示格式 >> format short >> format long 然后键入特殊变量:pi (圆周率),比较显示结果。 2.掌握MATLAB 常用命令 >> who %列出工作空间中变量 >> whos %列出工作空间中变量,同时包括变量详细信息 >>save test %将工作空间中变量存储到test.mat 文件中 >>load test %从test.mat 文件中读取变量到工作空间中 >>clear %清除工作空间中变量 >>help 函数名 %对所选函数的功能、调用格式及相关函数给出说明 >>lookfor %查找具有某种功能的函数但却不知道该函数的准确名称 如: lookfor Lyapunov 可列出与Lyapunov 有关的所有函数。 3. 在MATLAB 的命令窗口计算: 1) )2sin(π 2) 5.4)4.05589(÷?+ 4. 设计M 文件计算: 已知 求出: 1) a+b a-b a+b*5 a-b+I (单位阵) 2) a*b a.*b a/b 3) a^2 a.^2 注意:点运算 . 的功能,比较结果。 ?? ??? ?????=987654321a ?? ?? ? ?????=300120101b

相关主题
文本预览
相关文档 最新文档