当前位置:首页 > EDA > 电子设计自动化
[导读]信号处理工程师在开发工作的所有阶段都使用 MATLAB® 和 Simulink® — 从分析信号和探索算法,到评估设计实现的权衡,最终构建实时信号处理系统。

信号处理工程师在开发工作的所有阶段都使用 MATLAB® 和 Simulink® — 从分析信号和探索算法,到评估设计实现的权衡,最终构建实时信号处理系统。MATLAB 和 Simulink 可提供:

分析和预处理时序数据、频谱和时频分析以及信号测量所用的内置函数和应用程序

设计、分析和实现数字滤波器(FIR 和 IIR)所用的应用程序和算法,从基本的 FIR 和 IIR 滤波器,到自适应、多速率和多级设计

使用程序和模块图组合对信号处理系统建模和仿真的环境

对定点行为建模并自动生成 C/C++ 或 HDL 代码,进而部署在嵌入式处理器、FPGA 和 ASIC 上的各种功能

使用机器学习和深度学习工作流程在信号和传感器数据上开发预测模型的工具MATLAB 和 Simulink 可帮助您使用内置应用程序分析信号,可视化和预处理时域、频域和时频域中的信号,无需手工编写代码即可检测规律和趋势。可以使用特定领域算法跨不同的应用(如通信、雷达、音频、医疗设备和物联网)表征信号和信号处理系统。

设计和分析数字滤波器,从基本的单速率低通或高通滤波器,到更高级的 FIR 和 IIR 设计,包括多速率、多级和自适应滤波器。能够可视化幅值、相位、群延迟和脉冲响应,还可以评估滤波器的稳定性和相位线性等性能。分析和仿真滤波器设计,以评估不同内部结构和定点数据类型的影响。这些设计还可以生成嵌入式软件或硬件实现。对于高级和特定应用的使用案例,可以利用预先设计的滤波器和滤波器组,如基于小波的滤波器组、感知间隔的滤波器组或信道化。

在设计信号处理系统时,可以使用模块图和基于语言的编程组合。使用 Simulink 对信号处理系统应用基于模型的设计,进行建模、仿真、早期验证和代码生成。利用模块库配合特定应用的算法,开发基线信号处理,音频、模拟混合信号和 RF、有线和无线通信以及雷达系统。在仿真过程中使用虚拟示波器(包括频谱和逻辑分析仪、星座图和眼图)可视化实时信号。

1.调用函数fourier和ifourier之前,需用syms命令对所用到的变量进行说明,即将这些变量说明成符号变量。

clear all

syms t;

f=t*exp(-abs(t));

subplot(121);ezplot(f);

F=fourier(f);

subplot(122);ezplot(abs(F));

2.采用fourier和ifourier得到的返回函数,仍是符号表达式。若作图,应用ezplot而不是plot。若返回函数有如狄拉克函数 δ(t) 等。则用ezplot也无法作图。

clear all

syms t w;

F=pi*exp(-abs(w));

subplot(121);ezplot(abs(F));

f=ifourier(F,t);%因为返回是关于x的函数,所以指定返回t的函数。

subplot(122);ezplot(f);

plot是绘制二维图形,并且是x,y的表达式是已知的或者是形如y=f(x)这样确切的表达式,而ezplot是画出形如f(x,y)=0这种隐函数图形。

3.严格的说,只有非周期信号才有Fourier变换。(不满足绝对可积)但若满足Dirichlet条件,可展开为Fourier级数。 ()X(kΩ0)是k次谐波处的Fourier系数。 ()X(kΩ0) 是谐波幅度的概念, ()X(jΩ) 是频谱密度的概念。

4.离散时间信号的Fourier变换,两个特点:

(1)变换是用于无限长的序列;

(2)变换的结果是自变量 ω 的连续函数。

*两个序列的循环卷积序列:

clear all

h=[6 3 4 2 1 -2];%产生信号序列

x=[3 2 6 7 -1 -3];

h1=fliplr(h);

H=toeplitz(h,[h(1) h1(1:5)]);

y=H*x';

H=fft(h);

X=fft(x);

Y=H.*X;

y1=ifft(Y);

subplot(211);stem(y);title('直接计算')

subplot(212);stem(y1);title('DFT计算')

*DFT对应循环卷积而不对应线性卷积。若用DFT进行线性卷积,需对两长度分别为M,L的序列都扩展为长度为M+L-1的新序列。例子及程序如下:

clear all

n1=0:20;

n2=0:10;

%%直接法

h=sinc(0.2*n1);%两序列

x=exp(-0.2*n2);

y=conv(x,h);

%%DFT法

h1=[h zeros(1,length(x)-1)];

x1=[x zeros(1,length(h)-1)];

H1=fft(h1);

X1=fft(x1);

Y1=H1.*X1;

y1=ifft(Y1);

subplot(211);stem(y);title('直接计算')

subplot(212);stem(y1);title('DFT计算')

5.加性高斯白噪声(AWGN)表现为信号围绕平均值的一种随机波动过程。加性高斯白噪声的均值为0,方差为噪声功率的大小。一般情况下,噪声功率越大,信号的波动幅度越大,接收端接收到的信号的误比特率就越高。

MATLAB 作为一种科学计算软件,具有如下优点。

1) 强大的数学计算能力特别是矩阵运算能力

与 C/C++、Java 等编程语言不同,MATLAB 是将数组和矩阵作为基本的操作单元来对待的。

在 C/C++ 等编程语言中,加法运算符“+”在最基础的层面上支持的仅仅是单个标量的加法运算。尽管 C++ 等面向对象的编程语言可以通过操作符重载来定义更为复杂的“+”运算,但是这需要编程者额外的编程工作,或者是其他库的支持。而 MATLAB 编程语言直接将数组和矩阵这样的批量数据的组织形式作为基本的处理单元,因此,在 MATLAB 中,“+”表示的就是整个数组和矩阵之间的加法,这是 MATLAB 内生的特性,不需要编程者额外进行任何工作,从而极大地简化了数组和矩阵运算的编程任务,也使得其表达形式与数学公式更为一致,同时也更为简明清晰。

不仅如此,MATLAB 数组和矩阵的元素还可以取复数值而不限于实数值,从而使复数相关的运算也变得十分易用。

此外,MATLAB 从最初版开始就关注矩阵运算,因此其矩阵运算包括特征根与特征矢量的求取、矩阵求逆等常用而核心的运算,都具有极高的运行效率。实际上,MATLAB 在矩阵相关运算方面,一直都是各主要编程语言中最为高效者之一。

2) 语言特性简洁,编程效率高

MATLAB 编程语言本身的特性简洁明了,没有引入太多复杂的特性,这一点与 C++ 这样面向对象的编程语言相比显得尤为突出。

此外,MATLAB 中的数组和矩阵实际上都是“动态”的,因此,在内存管理方面编程者几乎不需要负担多少工作。尽管在空间和时间效率上不一定能保证是最优的,但是不用进行内存管理,将明显减少程序发生内存相关错误的可能,从而使得编程者的代码编写和调试工作变得更为简单和轻松,编程效率可以显著提高,编程者能够将更多精力集中在如何解决实际问题,而不是陷在编程语言本身的技术细节之中。

同时,MATLAB 将数组和矩阵作为基本操作单元的处理方式,也使得与批量数据的运算和处理有关的程序变得更为简洁,编程工作量更少。在掌握了 MATLAB 的矢量化运算技巧之后,在 C语言或 Java 语言中需要一层甚至是多层嵌套的循环才能完成的运算,在 MATLAB 中也许仅需要寥寥数行就能实现。

3) 交互性好,使用方便

MATLAB 又被称为“草稿纸式的计算软件”,它的基本使用方式是命令行式的:在命令窗口中输入一条命令,马上就能执行该命令,并且根据用户的需要可以显示计算的结果。这条命令可以本身是执行一项复杂、完整的计算任务的函数调用,也可以仅仅是一个复杂处理过程中的中间步骤。而利用 C/C++ 或 Java 等编程语言编程时,在编写了完整或部分的代码后,需要经过编译、链接等操作产生可执行程序,然后才能够实际运行和看到结果。

而且 MATLAB 的不同程序间的互相调用也十分方便和简单。它提供的每个 M 文件既是一个函数模块,也是一个完整的可执行程序。因此,它们既可以单独用来执行一项特定的任务,也可以组合起来构成更为复杂的程序。以 MATLAB 工具箱为例,每个工具箱通常由存放在特定目录下的一系列M函数构成,这个目录实际上起到了在其他编程语言中函数库的作用。

4) 绘图能力强大,能够利用数据可视化有效辅助研究分析

利用 MATLAB 可以方便地绘制多种常用的二维图形和三维图形,如曲线图、散点图、饼图、柱状图、三维曲线/三维曲面图、伪彩色图等。这些图形不但提供大量数据的直观表示,而且更便于揭示数据间的内在关系。

5) 为数众多的工具箱

MATLAB 除了基本的数学计算功能,还以工具箱的形式提供了大量针对特定功能和特定应用领域的工具箱。

例如,在 MATLAB R2020a 中,就提供了包括曲线拟合工具箱、最优化工具箱、符号数学工具箱、统计与机器学习工具箱、深度学习工具箱、强化学习工具箱、并行计算工具箱,以及针对信号处理、图像处理与机器视觉、控制系统、测试测量、射频与混合信号、无线通信、自主系统、FPGA 等硬件开发、汽车、航空航天、计算金融学和计算生物学等特定应用领域的工具箱,多达 60 余个。此外,还包括用于仿真和代码生成等功能的软件和函数或模块库,数量也多达数十个。这些工具箱直接为使用者提供了相关领域的大量较为成熟的算法,从而使得研究者与开发者能够迅速在这些已有成果的基础上,构建自己的解决方案或新的算法。

6) 开放性好,便于扩展

大量 MATLAB 工具箱函数都是以 M 文件的形式提供的,因此,其具体实现都是公开的,而且用户可根据自己的需要加以修改。这些公开的代码不仅为用户对其进一步改进提供了很好的基础,而且研究者还能够通过阅读这些代码,更好地理解相关的算法。

以 M 文件为基本模块的工具箱组织方式,也使得用户能够构建自己的工具箱,或进一步搭建起基于 MATLAB 的二次应用环境。

MATLAB 的开放性还体现在它与其他编程语言和工具软件的交互上。

MATLAB 提供了 C语言和 FORTRAN 语言的 API 函数库,开发者可以利用这些 API 函数,使用 C 语言或 FORTRAN 语言来实现有关算法,然后把它们编译为可在 MATLAB 中执行的 MEX 函数模块。

MATLAB 还通过 COM 接口对外提供计算服务,其他的应用程序可以通过该 COM 接口调用 MATLAB 的计算功能,从而使得 MATLAB 可以作为一个强大的后台计算引擎来发挥作用。例如,用户可以利用 C++、VB 等语言来编写应用程序,然后在其中调用 MATLAB 来完成复杂或性能敏感的计算任务。

MATLAB 也可以对 Java 类进行操作和使用。同时,由于 MATLAB 强大的功能和已经构建起来的应用生态,不少其他的工具软件也提供了与 MATLAB 兼容的接口。例如,在 LabVIEW 中就可以利用 M 语言来编写模块以执行有关的计算功能。

7) C/C++代码生成功能

MATLAB 能自动将 M 代码转换为可靠的 C/C++ 语言代码。通过这一功能,开发者就可以利用 MATLAB 高效便捷地进行算法的实现、调试与验证,之后再自动转换为 C/C++ 代码,就能够将所实现的算法用于需要的程序中,从而极大地减少编写和调试程序的工作量。

声明:该篇文章为本站原创,未经授权不予转载,侵权必究。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭