![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
信号分析与处理基础
本专栏内含信号与系统、数字信号处理两门课程的仿真内容.
好梦成真Kevin
Never ever give up.
展开
-
通过Matlab分析语音信号的时频特性
Matlab为我们提供了音频文件读取函数wavread, 以这个函数为基础可实现语音音频时域波形的绘制. 一开始我直接将.m4a文件改为.wav文件, 虽然语音文件能够通过播放器播放, 但Matlab无法读取. 为了实现格式的转换, 我下载了格式工厂, 在其中进行了.m4a格式到.wav格式的转换, 最终Matlab可正常读取这两个语音文件. 本程序中使用的两个语音文件分别为朗读"为什么要学习信号与系统"的男声语音和女生语音, 下面我们可以通过程序的运行结果直观地感受它们的不...原创 2021-05-26 17:13:55 · 1200 阅读 · 0 评论 -
连续时间信号----宽度为2, 幅度为1的矩形脉冲信号的频谱
syms t;% 定义宽度为2, 幅度为1的矩形脉冲信号xt = heaviside(t + 1) - heaviside(t - 1);% 对x(t)进行傅里叶变换% X(jw)为x(t)的频谱函数X_jw = fourier(xt);% 该信号的频谱函数为实函数, 直接画其频谱图即可fplot(X_jw, [-30, 30], 'r-');%xlabel('w');ylabel('X(jw)');%legend('X(jw)');...原创 2021-04-12 21:59:16 · 2611 阅读 · 1 评论 -
连续时间信号----右边指数衰减信号的频谱
首先我们来看一下如何在Matlab中绘制单边指数衰减信号 x(t) = e^(-at) * u(t).% 绘制单边指数信号 x(t) = A * e^-at * u(t)A = 1;a = 0.8;% 在区间[-10, 10]上选取10000个采样点t = linspace(-10, 10, 10000);% 定义单边指数信号 x(t)xt = A * exp(- a * t) .* (t > 0);% 绘制单边指数信号的波形plot(t, xt, 'b-');%...原创 2021-04-12 21:48:00 · 3034 阅读 · 0 评论 -
使用Matlab求解连续时间(LTI)系统的冲激响应和阶跃响应
在Matlab中, 求解连续时间LTI系统冲激响应可应用控制系统工具箱提供的函数impulse, 求解阶跃响应可利用函数step. 其调用方式为 y = impulse(sys, t) y = step(sys. t)式中 t 表示计算系统响应的抽样点向量, sys是连续时间LTI系统模型. 下面举例说明其应用.% 连续时间LTI系统冲激响应的求解% 在区间[0, 10]上选取5000个点t = linspace(0,10, 50...原创 2021-04-12 20:53:03 · 12248 阅读 · 0 评论 -
使用Matlab求解连续时间系统的零状态响应
连续时间LTI系统以常系数微分方程描述, 系统的零状态响应可通过求解初始状态为零的微分方程得到. 在Matlab中, 控制系统工具箱提供了一个用于求解零初始条件微分方程数值解的函数lsim. 其调用方式为 y = lsim(sys, x, t)式中 t 表示计算系统响应的抽样点向量, x 是系统的输入信号向量, sys是连续时间LTI系统模型, 用来表示微分方程、差分方程或状态方程. 在求解微分方程时, 连续时间LTI系统模型 sys 要借助 tf 函数获得, 其调...原创 2021-04-11 15:20:48 · 11973 阅读 · 0 评论 -
从求解周期矩形脉冲信号的傅里叶级数表达式到初识Gibbs现象
[题目要求] 求下图所示周期矩形脉冲信号x(t)的傅里叶级数表达式, 并用Matlab求出由前N项傅里叶级数系数得出的信号近似波形.[分析] 上述周期矩形脉冲信号的频谱函数Cn = 0.5 * Sa(n * pi / 2), 由连续周期信号的傅里叶级数表达式可知, xN(t) = 0.5 + ∑n = (1, N) Sa(n * pi / 2) * cos(n * pi * t).[Gibbs现象简介] 一个连续周期信号可以表达为无限项虚指数信号的叠加, 但在实际...原创 2021-04-09 21:09:11 · 5219 阅读 · 1 评论 -
离散信号的Matlab表示
对任意离散序列x[k], 需用2个向量来表示. 一个表示k的取值范围, 另一个表示序列的值. 例如序列x[k] = {2, 1, 1(⬇), -1, 3, 0, 2}可用Matlab表示为 k = -2 : 4; x= [2, 1, 1, -1, 3, 0, 2];若序列从0开始, 则只用一个向量x就可表示序列. 由于计算机内存的限制, Matlab无法表示一个无穷长的序列.1. 指数序列 离散指数序列的一般形式为 a^k, 可以用Matlab中的...原创 2021-04-09 19:21:06 · 5803 阅读 · 0 评论 -
连续时间信号的Matlab表示
Matlab提供了大量的产生基本信号的函数. 最常用的指数信号、正弦信号是Matlab的内部函数, 即不安装任何工具箱就可调用.1. 指数信号 x(t) = A * e^at% 1. 指数信号 x(t) = A * e^at% 指数信号在Matlab中可用exp()函数表示% A = 1, a = -0.4 因果衰减指数信号A = 1; a = -0.4;% 在[0, 30]区间上选取5000个点t = linspace(0, 30, 5000);xt = A * exp(...原创 2021-04-09 17:03:29 · 1153 阅读 · 0 评论 -
用BW原型模拟低通滤波器 + 双线性变换法设计数字带通滤波器
题目要求: 使用双线性变换法及Butterworth模拟滤波器设计一个满足下列技术指标的数字带通滤波器(具体技术指标在程序开始处的注释中). [设计思路]选定抽样间隔 T -> 通过双线性变换法参数转换公式求得转换后的模拟带通滤波器指标wp1, wp2, ws1, ws2 -> 求得通带宽度B和参数w0 -> 确定原型低通滤波器的通带截频wp_和阻带截频ws_ -> 设计原型BW模拟低通滤波器 -> 将模拟低通滤波器转换为模拟带通滤波器 -> 根据双...原创 2021-04-08 21:24:26 · 2359 阅读 · 0 评论 -
使用Matlab实现脉冲响应不变法
Matlab提供的impinvar(num, den, Fs)函数可实现脉冲响应不变法的转换过程, 其调用形式为 [numd, dend] = impinvar(num, den, Fs); 式中num和den分别表示模拟滤波器系统函数H(s)的分子多项式系数和分母多项式系数, Fs是脉冲响应不变法中的抽样频率, 单位是Hz. 输出变量numd和dend分别表示数字滤波器的系统函数H(z)的分子多项式系数和分母多项式系数.[程序设计代码]% 使用Butterw...原创 2021-04-08 20:09:18 · 4342 阅读 · 0 评论 -
使用Matlab实现双线性变换法
[程序设计代码]% 使用CB I型模拟滤波器设计模板和双线性变换法, 设计数字低通滤波器% 技术指标Wp = 0.1 * pi;Ws = 0.4 * pi;Ap = 1;As = 25;% 取 T = 2T = 2;% 通过转换得到模拟滤波器的指标wp = 2 / T * tan(Wp / 2);ws = 2 / T * tan(Ws / 2);[N, wc] = cheb1ord(wp, ws, Ap, As, 's');[num, den] = cheby1(N, A...原创 2021-04-08 19:06:37 · 6469 阅读 · 1 评论 -
使用Matlab分析离散系统H(z)的频率响应
使用Matlab提供的freqz()函数可计算离散系统频率响应的抽样值. 一般情况下, 函数freqz()的返回值为复数, 使用Matlab提供的abs()、angle()函数可分别计算其幅度、相位.[程序设计代码(计算系统的幅度响应)]% H(z)的分子: (0.5009 - 1.0019z^-1 + 0.5009z^-2)(0.5320 + 1.0640z^-1 + 0.5320z^-2)% H(z)的分母: (1 - 0.8519z^-1 + 0.4167z^-...原创 2021-04-08 10:15:53 · 6747 阅读 · 1 评论 -
BW型模拟带通滤波器设计的Matlab仿真
试设计满足下列技术指标的BW型模拟带通滤波器:wp1 = 6 rad/s, wp2 = 8 rad/s, ws1 = 4 rad/s, ws2 = 11 rad/s, Ap <= 1dB, As >= 32 dB.[思路分析](1)根据带通滤波器的上下截频, 确定参数B和w0:B = wp2 - wp1, w0^2 = wp1 * wp2.(2)确定原型低通滤波器的通带截频wp_和阻带截频ws_:ws1_ = (ws1 * ws1 - w0 * w0) / (B * ws原创 2021-04-07 18:59:00 · 2282 阅读 · 0 评论 -
BW型模拟带阻滤波器设计的Matlab仿真
[例4-4] 试设计一个满足下列技术指标的BW型模拟带阻滤波器.wp1 = 6 rad/s, wp2 = 13 rad/s, ws1 = 9rad/s, ws2 = 11 rad/s, Ap <= 1dB, As >= 10dB.[问题分析](1)根据带阻滤波器的阻带上下截频, 确定带阻滤波器的阻带宽度B和带阻滤波器的中心频率w0,其中 B=ws2-ws1, wo^2=ws2·ws1;(2)确定原型低通滤波器的通带截频wp'、阻带截频ws':wp1' = (B·wp1)原创 2021-04-07 13:38:47 · 1496 阅读 · 0 评论 -
BW型、CB I型、CB II型和椭圆模拟低通滤波器设计的Matlab仿真
[题目要求]设计满足下列指标的模拟低通滤波器.fp=1kHz, fs=3kHz, Ap<=1dB, As>=50dB.[分析]Matlab信号处理工具提供了常用的设计模拟低通滤波器的函数. 无论是BW型、CB型还是椭圆模拟低通滤波器, Matlab提供了两个函数来实现其设计. 首先根据设计指标确定出相应模方函数中的参数, 然后由确定好的参数获得模拟低通滤波器的系统函数H(s). 在实际应用中, 可方便地调用这些函数完成模拟滤波器的设计.[解法1(使用BW型模拟低通滤波器模板)]原创 2021-04-07 11:24:05 · 2643 阅读 · 2 评论