15、编程与问题解决实用指南

编程与问题解决实用指南

1. 问题解答报告建议

许多问题需要提供程序和函数列表以及字母数字和图形输出的副本。根据对计算机系统和 MATLAB 的了解,有多种方法可以实现。

1.1 屏幕截图获取

  • 按下键盘上的“Print Screen”键可获取屏幕副本,此时屏幕上的内容会存储在剪贴板中。
  • 若 MATLAB 正在运行,在按下“Print Screen”键前最大化屏幕,可获得整个 MATLAB 桌面的副本。
  • 若要获取命令窗口或其他特定窗口的副本,关闭不需要复制的窗口即可。

1.2 剪贴板内容处理

  • 剪贴板中的内容可直接粘贴到各种应用程序的文件中,如 Microsoft Word、Paint 和 Visio 等。
  • 将剪贴板中的屏幕图像粘贴到 Paint 中,可进行颜色和大小编辑、添加各种形状和标题等操作。还能裁剪图像的任何部分,并将裁剪后的部分粘贴到 Word 文档或另一个打开的 Paint 屏幕中进行进一步编辑。最后可将 Paint 图像以 bmp、jpeg 等文件格式保存,并作为图片插入到 Word 文档中。
  • 也可将剪贴板中的图像或从 Paint 中裁剪的图像粘贴到 Visio 等图形应用程序的打开文件中。在 Visio 中可创建和添加大量其他图形和文本材料,并将整个图形以多种文件格式保存,包括增强型图元文件(emf),该文件可插入到 Word 文档中。此外,还能打印 Paint 或 Visio 图像。

1.3 图形处理

  • 若编写了生成图形的 MATLAB 脚本,可将除图形窗口外的所有窗口最小化并最大化图形窗口,然后按上述方法处理图形。
  • 若只需图形的打印副本,可在图形窗口中打开文件菜单并选择打印。也可从文件菜单中将图形保存为 MATLAB fig 文件,之后再打开、打印或编辑该 fig 文件。还可通过命令窗口使用内置的 print 函数或在程序中调用 print 函数来获取当前图形的打印副本。另外,在图形窗口中打开编辑菜单,可复制图形并粘贴到打开的 Word 文档或其他应用程序中,也可通过选择“Figure Properties”或“Axes Properties”来编辑图形或坐标轴。

1.4 脚本和命令窗口内容处理

  • 若要获取脚本的打印副本,在编辑器窗口中打开文件菜单并选择打印。若要将脚本放入打开的 Word 文档中,在编辑器窗口中打开编辑菜单,选择“全选”以高亮显示整个脚本,右键单击鼠标,然后复制并粘贴到其他位置。
  • 若要打印命令窗口的内容,打开文件菜单并选择打印。也可高亮显示命令窗口中的任何部分文本,然后复制并粘贴到打开的 Word 文档或其他应用程序(如 WordPad)中。

1.5 m - 文件列表获取

  • 若要获取任何 m - 文件的列表,可在命令窗口中使用 type 函数。例如,若要在命令窗口中列出当前文件夹中名为 DFT.m 的 m - 文件,可在命令窗口中输入 type 'DFT.m' ,然后打印命令窗口的内容。
  • 有时在 m - 文件列表中包含行号很有用,可使用内置的 dbtype 函数。例如,在命令窗口中输入 dbtype 'DFT.m' ,然后打印命令窗口的内容。
graph LR
    A[按下Print Screen键] --> B[内容存入剪贴板]
    B --> C[粘贴到Paint]
    B --> D[粘贴到Visio]
    B --> E[粘贴到Word]
    C --> F[编辑图像]
    F --> G[保存为bmp/jpeg]
    G --> E[插入到Word]
    D --> H[添加图形和文本]
    H --> I[保存为emf]
    I --> E[插入到Word]

2. ASCII 码表

ASCII(美国信息交换标准代码)码表包含 7 位代码(第 8 位为 0),范围从 0 到 127,其中 0 - 31 为不可打印字符,32 - 127 为可打印字符。以下是部分 ASCII 码表内容:
| 十进制 | 八进制 | 十六进制 | 二进制 | 符号 | 描述 |
| — | — | — | — | — | — |
| 0 | 000 | 00 | 00000000 | NUL | 空字符 |
| 1 | 001 | 01 | 00000001 | SOH | 标题开始 |
| 2 | 002 | 02 | 00000010 | STX | 文本开始 |
| 3 | 003 | 03 | 00000011 | ETX | 文本结束 |
| 4 | 004 | 04 | 00000100 | EOT | 传输结束 |
| 5 | 005 | 05 | 00000101 | ENQ | 查询 |
| 6 | 006 | 06 | 00000110 | ACK | 确认 |
| 7 | 007 | 07 | 00000111 | BEL | 响铃 |
| 8 | 010 | 08 | 00001000 | BS | 退格 |
| 9 | 011 | 09 | 00001001 | HT | 水平制表符 |
| 10 | 012 | 0A | 00001010 | LF | 换行 |
| 11 | 013 | 0B | 00001011 | VT | 垂直制表符 |
| 12 | 014 | 0C | 00001100 | FF | 换页 |
| 13 | 015 | 0D | 00001101 | CR | 回车 |
| 14 | 016 | 0E | 00001110 | SO | 移出/X - On |
| 15 | 017 | 0F | 00001111 | SI | 移入/X - Off |
| 16 | 020 | 10 | 00010000 | DLE | 数据链路转义 |
| 17 | 021 | 11 | 00010001 | DC1 | 设备控制 1(通常为 XON) |
| 18 | 022 | 12 | 00010010 | DC2 | 设备控制 2 |
| 19 | 023 | 13 | 00010011 | DC3 | 设备控制 3(通常为 XOFF) |
| 20 | 024 | 14 | 00010100 | DC4 | 设备控制 4 |
| 21 | 025 | 15 | 00010101 | NAK | 否定确认 |
| 22 | 026 | 16 | 00010110 | SYN | 同步空闲 |
| 23 | 027 | 17 | 00010111 | ETB | 传输块结束 |
| 24 | 030 | 18 | 00011000 | CAN | 取消 |
| 25 | 031 | 19 | 00011001 | EM | 介质结束 |
| 26 | 032 | 1A | 00011010 | SUB | 替换 |
| 27 | 033 | 1B | 00011011 | ESC | 转义 |
| 28 | 034 | 1C | 00011100 | FS | 文件分隔符 |
| 29 | 035 | 1D | 00011101 | GS | 组分隔符 |
| 30 | 036 | 1E | 00011110 | RS | 记录分隔符 |
| 31 | 037 | 1F | 00011111 | US | 单元分隔符 |
| 32 | 040 | 20 | 00100000 | Space | 空格 |
| 33 | 041 | 21 | 00100001 |! | 感叹号 |
| 34 | 042 | 22 | 00100010 | “ | 双引号 |
| 35 | 043 | 23 | 00100011 | # | 数字符号 |
| 36 | 044 | 24 | 00100100 | $ | 美元符号 |
| 37 | 045 | 25 | 00100101 | % | 百分号 |
| 38 | 046 | 26 | 00100110 | & | 与号 |
| 39 | 047 | 27 | 00100111 | ’ | 单引号 |
| 40 | 050 | 28 | 00101000 | ( | 左括号 |
| 41 | 051 | 29 | 00101001 | ) | 右括号 |
| 42 | 052 | 2A | 00101010 | * | 星号 |
| 43 | 053 | 2B | 00101011 | + | 加号 |
| 44 | 054 | 2C | 00101100 |, | 逗号 |
| 45 | 055 | 2D | 00101101 | - | 连字符 |
| 46 | 056 | 2E | 00101110 |. | 句号 |
| 47 | 057 | 2F | 00101111 | / | 斜杠 |
| 48 | 060 | 30 | 00110000 | 0 | 数字 0 |
| 49 | 061 | 31 | 00110001 | 1 | 数字 1 |
| 50 | 062 | 32 | 00110010 | 2 | 数字 2 |
| 51 | 063 | 33 | 00110011 | 3 | 数字 3 |
| 52 | 064 | 34 | 00110100 | 4 | 数字 4 |
| 53 | 065 | 35 | 00110101 | 5 | 数字 5 |
| 54 | 066 | 36 | 00110110 | 6 | 数字 6 |
| 55 | 067 | 37 | 00110111 | 7 | 数字 7 |
| 56 | 070 | 38 | 00111000 | 8 | 数字 8 |
| 57 | 071 | 39 | 00111001 | 9 | 数字 9 |
| 58 | 072 | 3A | 00111010 | : | 冒号 |
| 59 | 073 | 3B | 00111011 | ; | 分号 |
| 60 | 074 | 3C | 00111100 | < | 小于号 |
| 61 | 075 | 3D | 00111101 | = | 等于号 |
| 62 | 076 | 3E | 00111110 | > | 大于号 |
| 63 | 077 | 3F | 00111111 |? | 问号 |
| 64 | 100 | 40 | 01000000 | @ | @符号 |
| 65 | 101 | 41 | 01000001 | A | 大写字母 A |
| 66 | 102 | 42 | 01000010 | B | 大写字母 B |
| 67 | 103 | 43 | 01000011 | C | 大写字母 C |
| 68 | 104 | 44 | 01000100 | D | 大写字母 D |
| 69 | 105 | 45 | 01000101 | E | 大写字母 E |

此外,还有扩展的 8 位 ASCII 码(第 8 位为 1),范围从 128 到 255,称为 ISO Latin - 1,包含了如 、1/2、m 等符号的代码。

3. 部分问题答案

3.1 第 1 章

  • 1 - 14)参考 MATLAB(SM)
  • 15) f = 440; w = 2*pi*f; T0 = 1/f; t = T0/4; x = sin(w*t);
  • 16 - 21)参考 MATLAB(SM)
  • 22d) mod(-7,-3) = x - n*y = -7 - n*(-3) = -1; n = floor((-7/ - 3)) = 2;
  • 23b) y = exp(-t/2) - exp(-2*t); x = y.* sin(w*t);
  • 24 - 25)参考 MATLAB(SM)

3.2 第 2 章

  • 1 - 4)参考 MATLAB(SM)
  • 5 - 6)需编写自己的 MATLAB 脚本(YMS)
  • 7a)一库仑电荷以 1 米/秒的速度垂直穿过 1 特斯拉的磁场时,会受到 1 牛顿的力。
  • 7b)排斥力 F = 0.020 牛顿/米
  • 8)1.1234e9 牛顿
  • 9)所需能量为 1.348e - 7 焦耳,电压升高为 134.813 伏特
  • 10a)12 mA
  • 10b)144 mW
  • 10c)518.4 焦耳
  • 11)20 W,7.2e4 焦耳
  • 12a)3.6e6 焦耳
  • 12b)1e - 3 kWh
  • 13 - 18)参考 MATLAB(SM)
  • 19)使用 power = @(R,I) R*I^2
  • 20 - 22)需编写自己的 MATLAB 脚本(YMS)
  • 23)使用 x_of_t = 'A*exp(-a*t).*cos(w*t + p)'
  • 24)函数示例:
function sinusoid_plot(A,w,p,N)
% Function to plot a sinusoid over N cycles
T0 = 2*pi/w; 
T = T0/100; 
T_total = N*T0; 
t = 0:T:T_total;
  • 25 - 26)需编写自己的 MATLAB 脚本(YMS)
  • 27a)由于 R_power 存储在私有文件夹中,m - 文件 find_R_power 无法找到函数 R_power,MATLAB 会给出错误消息。
  • 27b)需编写自己的 MATLAB 脚本(YMS)
  • 28)参考 MATLAB(SM)
  • 29)函数 evaluate 是一个函数函数。
  • 30)参考 MATLAB(SM)
  • 31)需编写自己的 MATLAB 脚本(YMS)
  • 32)参考 MATLAB(SM)

3.3 第 3 章

  • 1)A 为 3×3 矩阵;B 为 3×2 矩阵;C 为 2×3 矩阵;x 为 3×1 矩阵
  • 2) A = [2 -1 2; -2 1 0; -1 1 -2];
  • 3 - 4)参考 MATLAB(SM)
  • 5) I = eye(4); Z = zeros(3,2); T = 2*ones(100,1); R = rand(4,3); E = [];
  • 6) z = -1.5:0.1:4.3; w = linspace(-1.5, 4.3, ceil((4.3 - (-1.5))/0.1)+1);
  • 7)参考 MATLAB(SM)
  • 8)矩阵乘法不满足交换律。
  • 9)x0x 是一个标量,xx0 是一个 3×3 矩阵。CAB 的维度为 (2×3)(3×3)(3×2) = 2×2。
  • 10)参考 MATLAB(SM)
  • 11)使用给定提示。
  • 12)G 为单位矩阵
  • 13a) sqrt(1 + q.^2)
  • 13c) cos(2*q - pi/2)
  • 14 - 19)需编写自己的 MATLAB 脚本(YMS)
  • 20)参考 MATLAB(SM)
  • 21) |D| = 4; |E| = 1:4;
  • 22b)令 X = [z a] (行向量),则 A = [-4 2; 2 -3]; Y = [2 -3];
  • 23)使用第一行,三个代数余子式分别为 a11 = -2; a12 = 4; a13 = -1;
  • 24)使用给定提示。
  • 25)首先形成增广矩阵 g,对 g 应用初等行变换: 2*(row 1)+row 2 -> row 2; row 1+row 3 -> row 3; 2*(row 2)+row 3 -> row 3; 然后通过反复回代求解。
  • 26)在执行问题 3.25 答案中的初等行变换后,执行: -1*(row 2)+row 1 -> row 1; -0.5*(row 3)+row 2 -> row 2; 0.25*(row 3)+row 1 -> row 1; 对于 X,元素 X(3) = 1.5
  • 27)参考 MATLAB(SM)
  • 28)参考 MATLAB(SM)
  • 29d)在产品帮助窗口中搜索 sort。
  • 29e) E = reshape(A0,10,2);
  • 30)参考示例 3.15。
  • 31) I4 = -0.33258 mA;
  • 32) i1 = 53.2 mA;
  • 33)所有组件的功率传输为零。
  • 34) V4 = 8.4615 volts;
  • 35)左电路中, V4 = 4.6154 volts ;右电路中, V4 = 3.8462 volts
  • 36)与问题 3.35 相同
  • 37)不一致
  • 38a)0
  • 38b)$\sqrt{3}$
  • 38c)1
  • 39)使用 p - 范数定义,从求和项中提取公因子 k。
  • 40)例如,参考图 3.5,需编写自己的 MATLAB 脚本(YMS)
  • 41 - 44)需编写自己的 MATLAB 脚本(YMS)
  • 45)参考示例 3.20 和 3.21,需编写自己的 MATLAB 脚本(YMS)
  • 46)使用问题中给出的提示。
  • 47)参考示例 3.22 和 3.23,需编写自己的 MATLAB 脚本(YMS)
  • 48)需编写自己的 MATLAB 脚本(YMS)
graph LR
    A[第1章问题] --> B[参考MATLAB]
    A --> C[编写脚本]
    D[第2章问题] --> B
    D --> C
    E[第3章问题] --> B
    E --> C

4. 第 4 章问题答案

  • 1 - 5)参考 MATLAB(SM)
  • 6)一个可能的 B 矩阵是 B = [0 0; 1 0];
  • 7 - 8)参考 MATLAB(SM)
  • 9 - 11)需编写自己的 MATLAB 脚本(YMS)
  • 12)要检查一个数 x 是否为整数,可将 x 与 floor(x) 进行比较;要检查它是否为偶数,令 y = x/2 ,然后将 y 与 floor(y) 进行比较。
  • 13)参考 MATLAB(SM)
  • 14)需编写自己的 MATLAB 脚本(YMS)
  • 15)使用问题中给出的建议。
  • 16) P = RV/(Rs + R)^2 ,需编写自己的 MATLAB 脚本(YMS)
  • 17 - 18)需编写自己的 MATLAB 脚本(YMS)
  • 19)该算法是数字低通滤波器的一个示例,使用问题中给出的建议脚本。
  • 20 - 21)使用问题中给出的建议脚本,需编写自己的 MATLAB 脚本(YMS)
  • 22)需要求导数 dP/dR = (Rs^2 - R^2)/(Rs + R)^4
  • 23 - 24)需编写自己的 MATLAB 脚本(YMS)
  • 25a) A = 0.5 - exp(-5)*(1 - 0.5*exp(-5)) ≈ 4.9328475e - 01;
  • 26)需编写自己的 MATLAB 脚本(YMS)
  • 27)使用 x_of_t = @(t) exp(-t) - exp(-2*t) ,然后使用 quad(x_of_t, 0, 5) 计算面积。
  • 28 - 29)需编写自己的 MATLAB 脚本(YMS)

5. 第 5 章问题答案

  • 1 - 2)需编写自己的 MATLAB 脚本(YMS)
  • 3a)二进制表示:1100011,11111010
  • 3b)255
  • 4a)0.2 的二进制表示为 0.00110011,0.21 的二进制表示为 0.00110101
  • 4b)0.00390625
  • 5)参考 MATLAB(SM)
  • 6)需编写自己的 MATLAB 脚本(YMS),并令 P = 1 检查偶校验
  • 7) X = int16(X); ,参考 MATLAB(SM)
  • 8a)2000 的十六进制表示为 7d0
  • 8b) ab 的二进制表示为 10101011,十进制为 171; 7ff 的二进制表示为 011111111111,十进制为 2047
  • 9)参考 MATLAB(SM)
  • 10a)十六进制表示为 c18b0000
  • 10b)参考 MATLAB(SM)
  • 10c)参考 MATLAB(SM)
  • 10d)十六进制的舍入分数为 0.b2f0
  • 11)使用与门的真值表。
  • 12)使用异或门的真值表。
  • 13)参考电路。
  • 14b)是,因为 a = b
  • 15)或非门可用于构成基本门,如非门、与门和或门。
  • 16)需编写自己的 MATLAB 脚本(YMS)
  • 17)额外项检查 a2 = b2 a1 = b1 a0 = 1 b0 = 0 ,需编写自己的 MATLAB 脚本(YMS)
  • 18)参考问题 5.17 中的函数,并将其实现为积之和形式。
  • 19)参考问题描述。
  • 20)参考示例 5.6 中的 MATLAB 脚本,制作 w、x、y 和 z 的 BCD 码表,然后使用 D + 1 作为索引从表中获取 BCD 码。
  • 21) A + B = 1001111.010011101 ,十六进制为 4f.4e8,需编写自己的 MATLAB 脚本(YMS)
  • 22 - 24)需编写自己的 MATLAB 脚本(YMS)
  • 25) K = 19 ,电压分辨率为 3.815 uV
  • 26)使用表 5.11。

6. 第 6 章问题答案

问题 答案
1a (x - 5)(x + 3)
1b -(x - 2)(x + 3)
1c (x + 3)(x + 1 - j)(x + 1 + j)
2a 最小值在 x = 1
2b 最大值在 x = -1/2
2c 最大值在 x = -2 处,最小值在 x = -4/3
3a -1 + j5
3b 1 + j4
3c -9 - j7
3d (3 - j*2)/13
3e (-3 - j11)/10
3f (9 - j6)/13
4 参考 MATLAB(SM)
5 例如,参考图 6.3
6a 2/13
6b -13
6c -6/13
7 - 8 参考 MATLAB(SM)
9 需编写自己的 MATLAB 脚本(YMS)
10 x3 = x1 + x2 ,三个复数 x1 x2 x3 可在复平面上表示为三个向量,构成一个三角形,其中 |x1| |x2| |x3| 是三角形的边长,然后应用三角形不等式。
11 c1 = exp(j*pi/2); c2 = sqrt(13)*exp(j*atan(3/2)); c3 = sqrt(10)*exp(j*(pi/2 + atan(3/1))) = sqrt(10)*exp(j*(pi - atan(1/3))); c4 = sqrt(25)*exp(j*(pi + atan(3/4))) = sqrt(25)*exp(j*(3*pi/2 - atan(4/3))); c5 = 3*exp(j*3*pi/2); c6 = sqrt(13)*exp(j*(3*pi/2 + atan(2/3))) = sqrt(13)*exp(j*(2*pi - atan(3/2)));
12 参考 MATLAB(SM)
13 c7 = sqrt(2) + j*sqrt(2); c8 = j*3; c9 = -3*sqrt(2)/2 - j*3*sqrt(2)/2; c10 = -3/2 - j*3*sqrt(3)/2;
14 c7*c8 = 6*exp(j*3*pi/4); c8 + c9 = -3*sqrt(2)/2 + j*(3 - 3*sqrt(2)/2); conj(c10) = 3*exp(-j*7*pi/3); c7/c9 = -j*2/3;
15 参考 MATLAB(SM)
16 使用极坐标形式。
17 f(x) = an*x^n + an - 1*x^(n - 1) +... + a1*x + a0 ,其中系数为实数,使用复数和的共轭等于共轭的和这一性质(来自问题 6.17)。
18 对等式右边的每个正弦函数应用欧拉恒等式,展开、消去一些项,然后再次应用欧拉恒等式以匹配等式左边。
19 首先,将其转换为具有正振幅的余弦函数。
20 需编写自己的 MATLAB 脚本(YMS)
21a X = 3*exp(j*7*pi/6);
21b X = 5*exp(-j*pi/4);
21c X = 7*exp(j*pi/3);
21d X = 2*exp(-j*pi/2);
22a x(t) = 3*cos(10*pi*t + pi/3);
23 需编写自己的 MATLAB 脚本(YMS)
24a f0 = 0.25 Hz;
24b a0 = 1; ak = (-4*sin(k*w0) + 2*sin(3*k*w0))/(k*w0); bk = (2*cos(k*w0) - 2*cos(3*k*w0))/(k*w0) = 0;
25 Xk = (2*exp(-j*2*k*w0) - 1)*sin(k*w0)/(k*w0); X0 = 1;
26 - 28 需编写自己的 MATLAB 脚本(YMS)
29a ZL(w) = j*w*L; ZL(0) = 0; ZL(inf) = inf;
29b ZC(w) = 1/(j*w*C); ZC(0) = inf; ZC(inf) = 0;
30 例如,参考示例 6.11。
31a -Vs + (1/(j*w*(0.25e - 6)))*I + j*w*(10e - 3)*I + 100*I = 0; Vs = 5*exp(-j*pi/2); V = 100*I; w = 10^4 rad/sec; ,需编写自己的 MATLAB 脚本(YMS)
31b 需编写自己的 MATLAB 脚本(YMS)
31c 可以写成 V = H(jw)*Vs ,当 -1/(w*(0.25e - 6)) + w*(10e - 3) = 0 时, |H(jw)| 的分母取得最小值,即 -1 + w^2*L*C = 0 ,解得 w = 20000 rad/sec
32a H(jw) = 1/(j*w*C)/(R + 1/(j*w*C));
32b 需编写自己的 MATLAB 脚本(YMS),这是一个低通滤波器,带宽是 |H(jw)|^2 为其峰值的 1/2 时的频率。
33 需编写自己的 MATLAB 脚本(YMS)
34a H(jw) = R/(R + 1/(j*w*C));
34b 需编写自己的 MATLAB 脚本(YMS),对幅度平方图的检查表明带宽约为 3600 Hz。
35a 考虑公式(6.27),可写成 bk = (2/T0)*integral(x(t)*sin(k*w0*t), -T0/2, T0/2) 。由于给定的周期函数是偶函数,而正弦函数是奇函数,所以被积函数是奇函数,奇函数在对称区间上的积分为零,因此 bk = 0 。根据公式(6.28), Xk 是实数。
35b 从公式(6.26)开始。
36 每个放大器使用 R2/R1 = 10
37 增益必须小于 45。
38 首先在运算放大器的负端应用基尔霍夫电流定律(KCL)。
graph LR
    A[第4章问题] --> B[参考MATLAB]
    A --> C[编写脚本]
    D[第5章问题] --> B
    D --> C
    E[第6章问题] --> B
    E --> C

7. 第 7 章问题答案

  • 1 - 2)参考 MATLAB(SM)
  • 3)进行赋值后,使用 whos 函数。
  • 4)使用花括号定义元胞数组。
  • 5)参考 MATLAB(SM)
  • 6)使用 isletter 函数,也可以尝试 isstrprop 函数。
  • 7)在(b)部分,使用 findstr 函数。
  • 8)在(b)部分,使用两个单引号初始化 digits = '' ,并将每个新的数字名称与 digits 连接起来以获得更新后的 digits
  • 9)需编写自己的 MATLAB 脚本(YMS)
  • 10)参考 MATLAB(SM)
  • 11)参考示例 7.3,需编写自己的 MATLAB 脚本(YMS)
  • 12)参考示例 7.4。
  • 13 - 14)参考 MATLAB(SM)

8. 第 8 章问题答案

  • 1 - 3)参考 MATLAB(SM)
  • 4b)参考示例 8.2,或尝试使用 which 函数。
  • 5 - 10)需编写自己的 MATLAB 脚本(YMS)
  • 11)参考示例 8.4。
  • 12 - 13)参考 MATLAB(SM)
  • 14)参考示例 8.4。
  • 15)使用问题中给出的建议。
  • 16 - 17)参考 MATLAB(SM)
  • 18)需编写自己的 MATLAB 脚本(YMS)
  • 19)参考 MATLAB(SM)
  • 20 - 21)问题中给出了脚本。

9. 第 9 章问题答案

  • 1 - 4)参考 MATLAB(SM)
  • 5 - 6)需编写自己的 MATLAB 脚本(YMS)
  • 7)问题中描述了脚本。
  • 8)需编写自己的 MATLAB 脚本(YMS)
  • 9)由于 f = 60 Hz ,四个周期的时间为 total_time = 4/60 sec
  • 10 - 11)定义一个频率值向量,使用向量化表达式计算 H(jw) ,参考程序 9.3,该滤波器是低通滤波器。
  • 12)从 y 计算 u 的算法可以使用 for 循环实现。在 for 循环之前,按照问题中描述的方法计算 u(1) u(2) 。for 循环如下:
for n = 3:length(t)
    u(n) = (y(n) + 2*y(n - 1) + y(n - 2))/4;
end

计算 v 的过程如下:

v(1) = u(1)/4;
v(2) = (u(2) + 2*u(1))/4;
for n = 3:length(t)
    v(n) = (u(n) + 2*u(n - 1) + u(n - 2))/4;
end

u 和 v 与 x 和 y 一样,是关于 t 的时间函数。绘制图形后,参考程序 9.3 进行图形定制。
- 13)需编写自己的 MATLAB 脚本(YMS)
- 14)定义三个向量,例如 x1 = [0 1 0 1 0 1 0 1 1 0 0]; 为了更好地查看逻辑信号,使用 axis([0 length(n) 0 1.1]) 并打开网格,参考程序 9.5。
- 15 - 18)参考 MATLAB(SM)
- 19)需编写自己的 MATLAB 脚本(YMS)
- 20)参考示例 9.8。
- 21 - 22)需编写自己的 MATLAB 脚本(YMS)
- 23c)低通滤波器
- 24)参考示例 9.10。
- 25 - 27)需编写自己的 MATLAB 脚本(YMS)
- 28)参考示例 9.13 和 9.14。
- 29)参考示例 9.11。

graph LR
    A[第7章问题] --> B[参考MATLAB]
    A --> C[编写脚本]
    D[第8章问题] --> B
    D --> C
    E[第9章问题] --> B
    E --> C

10. 第 10 章问题答案

  • 1 - 8)参考 MATLAB(SM)
  • 9)需编写自己的 MATLAB 脚本(YMS)
  • 10 - 17)参考 MATLAB(SM)

11. 第 11 章问题答案

  • 1)参考 MATLAB(SM)
  • 2)参考 MATLAB(SM),也可以使用 whos 函数。
  • 3 - 9)参考 MATLAB(SM)
  • 10)从公式(11.1)开始,将两边乘以 r 得到 r*S = sum(r^(n + 1), n = 0, N - 1) = sum(r^n, n = 1, N) = r^N + sum(r^n, n = 0, N - 1) - 1 = r^N + S - 1 ,然后求解 S。
  • 11 - 12)参考 MATLAB(SM)
  • 13)该级数在 |z| < 1 时收敛。
  • 14 - 19)参考 MATLAB(SM)
  • 20a)基尔霍夫电流定律(KCL)方程为:
(VR - VS)/RS + (VR - VC)/(j*w*L) = 0
(VC - VS)/RS + (VC - VR)/(j*w*L) + VC/RC + VC/(1/(j*w*C)) = 0
  • 20b - c)参考示例 11.4。
  • 21)参考 MATLAB(SM)
  • 22b) xp(t) = u(t) - 3*u(t - 1) + 5*u(t - 2) - 3*u(t - 4);
  • 22c) diff(xp(t)) = dirac(t) - 3*dirac(t - 1) + 5*dirac(t - 2) - 3*dirac(t - 4);
  • 23a)由于 i(t) = C*dv/dt ,v(t) 的突然增加(减少)将导致电容电流出现大的正(负)值。
  • 23b)由于 v(t) = L*di/dt ,i(t) 的突然增加(减少)将导致电感电压出现大的正(负)值。
  • 24 - 25)参考 MATLAB(SM)
  • 26a) Y(jw) = 1/(j*w + a);
  • 26b) Y(jw) = T*sin(w*T/2)/(w*T/2);
  • 27a)需编写自己的 MATLAB 脚本(YMS)
  • 27b) C = B;
  • 28a) Y(s) = s/(s^2 + w^2);
  • 28b) Y(s) = (s + a)/((s + a)^2 + w^2);

12. 第 12 章问题答案

问题 答案
1a 带宽 BW = 60 Hz T0 = 1/15 sec X4 = 3*exp(-j*pi/4); X - 4 = conj(X4); X1 = 2*exp(j*2*pi/3); X - 1 = conj(X1);
1b 带宽 BW = 56 Hz T0 = 1/7 sec X8 = (5/2)*exp(-j*pi/2); X - 8 = conj(X8); X3 = exp(j*pi); X - 3 = conj(X3); X2 = (3/2)*exp(-j*pi/4); X - 2 = conj(X2);
2a T0 = 6 sec;
2b X0 = 1/2; Xk = (exp(j*k*pi/6) - 0.5*exp(-j*5*k*pi/6))*sin(k*pi/2)/(k*pi/2); 重构会出现吉布斯振荡。
2d X0 = 2/pi; Xk = 2/(pi*(1 - 4*k^2)); 重构不会出现吉布斯振荡。
3a N = 4;
3b X(0) = 0; X(1) = j*2; X(2) = 0; X(3) = -j*2;
4a 参考示例 12.3,采样频率 fs = 300 Hz (样本/秒),满足采样定理,频率为 f = k*f0 ,其中 f0 = 15 Hz Xk = X(k)/N;
4b fs = 80 Hz ,不满足采样定理,会出现混叠误差。
5 参考示例 12.3。
6 需编写自己的 MATLAB 脚本(YMS)
7 给定信号是带限的。
8a 结果无误差地给出 Xk
8b 应该可以估计 x(t) 的频率。
8c 在这种情况下,频谱线出现在 x(t) 频率之外的其他频率上。
8d 参考示例 12.7。
9a N = 11 ,其中 X(N - 1 = 10) = X(-1);...;
9b 参考程序 12.6,需编写自己的 MATLAB 脚本(YMS)
9c 如果采样频率满足采样定理,则带宽 BW = 5/Tx Hz
10a 脚本应首先将一个整数赋值给 N, W = exp(-j*2*pi/N); 然后初始化 DN 为 DN = ones(N, N); DN 的第一列包含每个 DFT 方程中 x(0) 的系数。定义列向量 w:
for k = 1:N
    w(k) = W^(k - 1);
end
w = w';

为了得到 DN,使用:

for k = 2:N
    DN(:, k) = DN(:, k - 1).*w;
end
``` |
| 10b | 需编写自己的 MATLAB 脚本(YMS) |
| 11a | 应用问题中给出的建议。 |
| 11b | 需编写自己的 MATLAB 脚本(YMS) |
| 12 | 需编写自己的 MATLAB 脚本(YMS) |
| 12a | `Tx = 8.192 sec`,参考示例 12.8 和 12.9。 |
| 13 | 需编写自己的 MATLAB 脚本(YMS) |
| 14 | `di/dt + (1/RC)*i(t) + (1/(RLC))*i(t) = (1/(R*RLC))*vs(t);` 由于 `vC(t) = RL*i(t)`,`i(0 - ) = vC(0 - )/R;` |
| 15 | `d^2v/dt^2 + (1/RC)*dv/dt + (1/LC)*v(t) = (1/RC)*dvs/dt;` 由于 `v(t) = vC(t)`,`v(0 - ) = vC(0 - );` 由于 `(v(t) - vs(t))/R + C*dv/dt + iL(t) = 0`,`dv(0 - )/dt = (-iL(0 - ) - vC(0 - )/R)/C;` |
| 16a | `l^4 + 6*l^3 + 138*l^2 + 462*l + 2929 = 0;` |
| 16b | 参考程序 12.10,需编写自己的 MATLAB 脚本(YMS) |
| 17 | `yzs(t) = 2*diff(w(t), 2) + 4*diff(w(t)) + 202*w(t);` |
| 18a | 应用公式(12.40)和(12.42),需编写自己的 MATLAB 脚本(YMS)以找到初始状态。 |
| 18b | 参考 MATLAB(SM) |
| 19 - 22 | 需编写自己的 MATLAB 脚本(YMS) |
| 23 | `h(t) = 3*exp(-2*t)*heaviside(t);` |
| 24 | 为了找到 h(t),按照示例 12.15 中的步骤进行,得到 `h(t) = (K1*exp((-1 + j)*t) + K2*exp((-1 - j)*t))*heaviside(t)`,其中 `K1 = 1/2`,`K2 = 1/2`,使用欧拉恒等式得到 `h(t) = exp(-t)*cos(t)*heaviside(t);` |
| 25 - 26 | 需编写自己的 MATLAB 脚本(YMS) |
| 27a | `yzs(t) = 6*(exp(-t) - exp(-2*t))*heaviside(t);` |
| 27b | `yzs(t) = h(t) conv r(t - 1) = 6*(exp(-(t - 1)) - exp(-2*(t - 1)))*heaviside(t - 1);` |
| 27c | `yzs(t) = h(t) conv r(t + 1) = 6*(exp(-(t + 1)) - exp(-2*(t + 1)))*heaviside(t + 1);` |
| 28 | 需编写自己的 MATLAB 脚本(YMS),`N3 = N1 + N2 - 1 = 249;` |
| 29 | 需编写自己的 MATLAB 脚本(YMS) |
| 30 | 使用问题中给出的建议。 |
| 31a | `H(s) = (2*s^2 + 4*s + 202)/(s^3 + 5*s^2 + 33*s + 29);` |
| 31b | 需编写自己的 MATLAB 脚本(YMS) |
| 31c | `r(t) = cos(2*pi*t - pi/2); H(jw) = (2*(j*w)^2 + 4*(j*w) + 202)/((j*w)^3 + 5*(j*w)^2 + 33*(j*w) + 29); w = 2*pi rad/sec; H(j*2*pi) = -0.7244 + 0.0259i = 0.7249*exp(j*3.1059); yss(t) = 0.7249*cos(2*pi*t - pi/2 + 3.1059);` |
| 32a | 5 阶差分方程。 |
| 32b | `y(-1); y(-2); y(-3); y(-4); y(-5);` |
| 32c | 因果、时不变和线性离散时间系统(DTS)。 |
| 32d | `y(n) + 0.5*y(n - 1) + 0.25*y(n - 3) + 0.125*y(n - 5) = 0;` |
| 32e | `y(2) = 1.25;` |
| 32f | 该离散时间系统是线性系统。因此,如果初始条件为零,若 `y(n) = y1(n)` 是对 `r(n) = r1(n)` 的响应,那么对于任何常数 a,若 `r(n) = r2(n) = a*r1(n)`,响应为 `y(n) = y2(n) = a*y1(n)`,这称为齐次性。这里,`r(n) = r1(n) = 1` 时 `y(2) = y1(2) = 0.875`,`r(n) = r2(n) = 2*r1(n)` 时 `y(2) = y2(2) = 2*y1(2) = 1.75`,`r(n) = r3(n) = 3*r1(n)` 时 `y(2) = y3(2) = 3*y1(2) = 2.625`。若初始条件不为零,则不满足齐次性。 |
| 33a | `y1(0) = 1.0; y1(1) = -0.25; y1(2) = 0.125; y1(3) = -0.3125;` |
| 33b | `y2(0) = 0; y2(1) = 0; y2(2) = 1.0; y2(3) = -0.25;` 由于离散时间系统是时不变系统,输入的时间移位会导致输出的时间移位,即 `y2(n) = y1(n - 2);` |
| 34 | 需编写自己的 MATLAB 脚本(YMS) |
| 35 | 需编写自己的 MATLAB 脚本(YMS),随着 f 的增加,s2 增加。 |
| 36 | 需编写自己的 MATLAB 脚本(YMS) |
| 37 | 参考示例 12.21 和 12.22,需编写自己的 MATLAB 脚本(YMS) |
| 38 - 39 | 需编写自己的 MATLAB 脚本(YMS) |
| 40a | `1 + 0.81*g^(-2) = 0;` |
| 40b | `(0.9*exp(j*pi/2))^n` 和 `(0.9*exp(-j*pi/2))^n;` |
| 40c | `yzi(n) = (0.9)^(n + 1)*cos((n + 1)*pi/2);` |
| 41 | `h(n) = (0.9)^n*cos(n*pi/2)*heaviside(n) - (0.9)^(n - 2)*cos((n - 2)*pi/2)*heaviside(n - 2);` |
| 42a | `H(z^(-1)) = (b0 + b1*z^(-1) +... + b8*z^(-8))/(a0 + a1*z^(-1) +... + a8*z^(-8));` |
| 42b - 42c | 需编写自己的 MATLAB 脚本(YMS) |
| 43 | `H(z^(-1)) = (1 - z^(-2))/(1 + z^(-2));` |
| 43a | 参考示例 12.25,需编写自己的 MATLAB 脚本(YMS) |
| 43b | `w = 250*pi rad/sec; w*T = pi/4;` 对 `z = exp(j*pi/4)` 计算 `H(z^(-1))`,并应用公式(12.98)。 |
| 44 | 需编写自己的 MATLAB 脚本(YMS) |

```mermaid
graph LR
    A[第10章问题] --> B[参考MATLAB]
    A --> C[编写脚本]
    D[第11章问题] --> B
    D --> C
    E[第12章问题] --> B
    E --> C

13. 第 13 章问题答案

  • 1 - 5)参考 Simulink(SS)
  • 6a)输出 y(n) = sin((n - 2)*pi/2);
  • 6b) y(n) + 0.5*y(n - 1) + 0.75*y(n - 2) = x(n) - x(n - 2);
  • 6c)参考 Simulink(SS)
  • 7 - 12)参考 Simulink(SS)
  • 13)一个圆
  • 14a - b)参考 Simulink(SS)
  • 14c)示波器输出是一个升余弦,因为正弦波在其周期的前半部分下的面积为正,当周期完成时变为零。
  • 14d)参考 Simulink(SS)
  • 15) y(n) x(n) 的每隔 N 个值。
  • 16 - 17)参考 Simulink(SS)
  • 18)参考问题建议。
  • 19)参考 Simulink(SS),平均值应约为 5 伏特。
  • 20)参考 Simulink(SS)
  • 21) H(s) = R*C*s/(L*C*s^2 + R*C*s + 1);
  • 22a) y^(4)(t) + 6*y^(3)(t) + 138*y^(2)(t) + 462*y^(1)(t) + 2929*y(t) = r^(2)(t) + 3*r^(1)(t) + 2*r(t);
  • 22b - d)参考 Simulink(SS)
  • 23c) H(s) = ((s + 2)/(s^2 + 4*s + 29))*((s + 1)/(s^2 + 2*s + 101)) = H1(s)*H2(s);
  • 23d)理想情况下,结果应该相同。
  • 24)问题中给出了传递函数,参考 Simulink(SS)
  • 25)使用问题中给出的 RC 级的 Simulink 模型。
graph LR
    A[第13章问题] --> B[参考Simulink]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值