标签归档:Matlab

Matlab 中的进制转换函数

在对一些控制电路或数字相关的电路的仿真时,有时需要考虑输入控制位的进制转化。在 matlab 程序中提供了常见的进制转化的函数,我们可以直接加以利用。

针对二进制与十进制之间的转换,matlab 中提供了dec2bin 和 bin2dec 的函数以供使用:

>> dec2bin(47)

ans =

101111

>> bin2dec(‘101 0110 1100’)

ans =

1388

Matlab 中求质数表

在利用 fft 变换分析频谱时,常要考虑将采样时间和信号的周期设为互质的关系。为了方便的找到所选的质数,我们可以利用 matlab 自带的质数表函数 primes() 来加以查找。

下面所示为利用 primes 函数求得100以内的质数:

>> primes(100)

ans =

Columns 1 through 19

2     3     5     7    11    13    17    19    23    29    31    37    41    43    47    53    59    61    67

Columns 20 through 25

71    73    79    83    89    97

除了质数表函数 primes() 之外,另一种更为灵活的方式是利用检测质数的函数 isprime(),下面的方法就算出了 150 到 200 的质数:
>> A=150:200;
>> B=A(isprime(A))

B =

151 157 163 167 173 179 181 191 193 197 199

关于 Matlab 的一些注意事项

这里把 Matlab (Matrix Laboratory) 工具的一些注意的地方大致列以下:

  • MATLAB 中变量区分大小写,变量必须以字母开头
  • 三角函数以弧度为单位计算
  • MATLAB 提供了一种类似模糊查询的命令查询方法,只需要输入命令的前几个字母,然后按 Tab 键,系统就会列出所有以这几个字母开头的命令
  • 强行中止程序的运行可使用 Ctrl+C 命令
  • 特殊变量或常数:如 eps 表示计算精度(误差); 圆周率 pi; 虚数单位 i,j 等
  • 矩阵\向量输入
    例如:A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]
    A(:,j) 表示取 A 矩阵的第 j 列全部元素; A(i,:) 表示 A 矩阵第 i 行的全部元素; A(i,j) 表示取 A 矩阵第 i 行、第 j 列的元素。
  • % — 表示注释内容
  • M 函数的文件名与函数名必须相同
  • help/doc –显示对应的帮助文档
  • lookfor –用关键字来查找命令
  • which –显示指定函数或文件的目录
  • exist –检查指定的变量或函数文件是否存在
  • path/pathtool –查看或修改包含的命令路径
  • 注意矩阵运算与元素运算差别,如 .* 与 *, ./ 与 /
  • clear –清空工作空间的变量, clc –清空命令窗口, clf –清空绘图窗口
  • format –控制输出显示的数据的格式和精度
  • text –在输出的图形中加标注文本

Matlab 由时域仿真结果计算 jitter 的脚本

这里简单谈下由时域仿真结果计算 jitter 的方法。

关于如何计算 jitter, 这里的方法主要分为两步,首先在 Cadence 仿真中得到时钟信号过零点时刻的数据,然后利用 matlab 对此数据处理,从而得到 clock jitter 以及时钟周期的直方图(histogram)。

对于过零点时刻的获取,主要可以通过 calculator 中的 cross 函数对 spectre 时域仿真的时钟信号的处理来得到,如下图中所示。

利用cadence calculator获取过零点
继续阅读

Type-III 补偿参数计算的 matlab 脚本

在 voltage mode 的 DC-DC 中,由于功率级中的电感和电容会在环路中引入一对极点,从而会导致环路相位的裕度的问题。为保持环路的稳定,通常的方法是在环路中加上 Type-III 补偿。

具体的 type-III 补偿的计算或者说补偿电路中的零极点的设置,很多论文中都有不同的方法,这里主要参考的是这篇文章中具体通过 ESR 零点位置来选择两种不同零点位置设置的计算方法。

type 3 补偿电路 由ESR零点确定补偿方法
继续阅读