- 博客(1263)
- 资源 (13)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 FIR 滤波器设计
与无限持续时间脉冲响应 (IIR) 滤波器相比,具有有限持续时间脉冲响应的数字滤波器(全零或 FIR 滤波器)既有优点又有缺点。FIR 滤波器具有以下主要优点:它们可以具有精确的线性相位它们始终稳定设计方法通常是线性的它们可以在硬件中高效实现滤波器启动瞬态具有有限持续时间。。相应地,这些滤波器的延迟通常比同等性能的 IIR 滤波器大得多。滤波器设计方法说明滤波器函数加窗对指定的矩形滤波器的截断傅里叶逆变换应用加窗多频带(包含过渡带)对频率范围的子带使用等波纹或最小二乘方法。
2022-07-18 10:00:00
8403
7
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 xilinx FPGA 固化代码流程
XilinxVIVADO固化流程 纯verilog工程,不涉及SDK代码的固化流程: 综合,实现,生成比特流后,点击Tools—Generate Memory Cinfiguration File… 如图,选择所用FLASH的类型,设置生成mcs文件名,选择生成的比特流文件,文件保存路径自动显示为如图。板子上电,连好JTAG,Open Target后,点击Add Configuration Memory Device如图,...
2022-05-23 09:34:17
2312
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 QuartusII安装器件库及遇到的问题解决
最近由于学习soc FPGA,需要Cyclone V的器件,于是就打开自己安装的QuartusII 18.0版本的软件,在器件选择的时候发现没有安装这个器件,于是到Intel FPGA官网去下载器件库,这里给出下载库的地址:器件库下载地址:https://fpgasoftware.intel.com/?edition=standard打开网址之后可以根据自己的需求下载需要的所需要的器件库文件,下载器件库文件的时候一定清楚自己安装的是什么类型版本以及版本的QuartusII软件,如图示所示: ..
2020-07-03 10:53:13
25271
10
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Matlab中lsim函数使用
lsim函数:lsim函数是针对线性时不变模型,给定任意输入,得到任意输出。lsim函数表示任意输入函数的响应,连续系统对任意输入函数的响应可以利用lsim函数求取。语法(常用):1.分子分母形式lsim(num,den,u,t)2.传递函数形式lsim(sys,u,t)3.状态空间形式lsim(A,B,C,D,u,t)其中,u为由给定输入序列构成的矩阵,它的每列对应一个输入,每行对应一个新的时间点,其行数与时间t的长度相等,其它的用法与step函数相同。...
2020-05-22 15:16:32
82285
1
原创 Simulink之如何辨别可生成代码模块说明
在我们搭建完仿真之后,可能需要将搭建的模型生成代码进行实际的测试,但是有时候模型中的模块可能在无法生成代码,这个时候我们需要将无法生成的代码的模块找出来,然后将其用可能生成模块进行代替或者去掉。
2024-07-26 08:35:37
14
1
原创 Simulink代码生成之模型配置及操作流程
Simulink自带了种类繁多、功能强大的模块库,在基于模型设计的开发流程下,Simulink不仅通过仿真可以进行早期设计的验证,还可以生成C/C++、PLC等代码直接应用于PC、MCU、DSP等平台。在嵌入式软件开发中发挥着重要的作用,本文以Simulink模型生成嵌入式C代码为例分析代码生成的原理及应用。
2024-07-24 09:09:06
800
1
原创 MATLAB中balance函数用法
T 是对角矩阵的置换矩阵,其元素是 2 的整数次幂,可防止引入舍入误差。变换矩阵 T 和平衡矩阵 B 是使用 T(:,P) = diag(S) 和 B(P,P) = diag(1./S)*A*diag(S) 从 A、S 和 P 求得的。如果矩阵含有由于舍入误差产生的小元素,平衡可能对其放大,使其与原矩阵中的其他元素一样有效。平衡处理会生成一个对角矩阵 T(包含是 2 的幂的元素)和一个平衡矩阵 B(比 A 更对称)。要查看特征向量的作用,请先计算 A 的特征向量,如此处的 V 的列所示。
2024-07-21 19:05:16
622
1
原创 MATLAB中isvarname用法
有效的变量名称以字母开头,并且包含的字符数不超过 namelengthmax 个。有效的变量名称可以包含字母、数字和下划线。MATLAB 关键字不是有效的变量名称。确定输入 s 是否为有效的变量名称。如果 s 是有效的 MATLAB® 变量名称,isvarname 函数将返回逻辑值 1 (true)。是该语法的命令形式。命令形式需要的特殊字符更少。使用命令形式确定输入是否为有效的变量名称。显示以数字开头的输入不是有效的变量名称。将输入更改为有效的变量名称。潜在的变量名称,指定为字符向量或字符串。
2024-07-20 14:44:06
149
1
原创 MATLAB中matlab.lang.makeUniqueStrings用法
要保证其在整个数据集中唯一性的 S 的子集,指定为线性索引范围或大小和形状与 S 相同的逻辑数组。U 中的前四个元素在其自身之间以及与元素 5 和 6('quiz' 和 'exam')中的其余字符向量之间均唯一。如果 whichStringsIdx 是逻辑数组,则当相同位置处的数组元素具有值 true 时,将检查该处元素的唯一性。通过为重复的字符串或字符向量添加下划线和数字的方式,基于输入字符串或字符向量 S 构造唯一字符串或字符向量 U。中排除的字符向量,指定为字符向量、字符向量元胞数组或字符串数组。
2024-07-19 08:34:01
892
1
原创 MATLAB中Simulink.SimulationOutput用法
Simulink.SimulationOutput的功能是访问仿真输出和元数据。 Simulink.SimulationOutput 对象为与一个仿真相关联的所有数据提供单一访问点。对象的属性包含从仿真记录的所有数据和完整的仿真元数据,包括有关模型配置、仿真计时以及仿真期间出现的错误或警告的信息。在单个对象中访问仿真结果有助于将仿真结果与其他工作区数据区分开来,并使管理来自多个仿真的数据变得更加容易。 仿真模型会在以下任何情况下创建一个或多个 Simulink.Simulatio
2024-07-15 08:38:38
1126
1
原创 MATLAB中tiledlayout函数用法
通过在调用 tiledlayout 函数时指定 "horizontal" 选项,创建一个分块图布局,该布局具有图的水平堆叠。在调用 plot 函数之前,调用 nexttile 函数以在下一个空图块中创建坐标区对象。通过在调用 tiledlayout 函数时指定 "vertical" 选项,创建一个分块图布局,该布局具有图的垂直堆叠。要更改跨图块坐标区的颜色图,请将图块位置标识为坐标区左上角图块所在的位置。调用 nexttile 函数以将坐标区的左上角放在第五个图块中,并使坐标区占据图块的两行和两列。
2024-07-14 19:27:57
962
1
原创 MATLAB中Simulink.exportToTemplate用法
如果你有在 R2014a 或更早版本中创建的项目模板(.zip 文件),请使用 Simulink.exportToTemplate 将它们升级为 .sltx 文件,然后你可以在起始页面中使用它们。Title — 模板的标题,指定为一个字符向量。模型、库或项目,可以通过名称或数字句柄指定,或者通过 currentProject 函数返回的 slproject.ProjectManager 对象来指定。模板文件名,指定为一个字符向量,可以选择性地包括模板文件的完全限定路径和 *.sltx 扩展名。
2024-07-13 10:42:33
44
1
原创 MATLAB中Simulink.SimulationData.Dataset用法
Simulink.SimulationData.Dataset的功能是访问已记录的模拟数据或组合模拟输入数据。
2024-07-12 09:16:44
862
1
原创 MATLAB中c2d函数用法
在MATLAB中,c2d函数用于将连续时间系统(Continuous-Time System)转换为离散时间系统(Discrete-Time System)。以下是c2d。
2024-07-11 08:31:27
431
1
转载 Nios ii最小系统搭建教程
本手稿为实践总结,只是提供了一个思路,比如,驱动都是基于轮询方式来写的,读者可以深入去另行编写基于中断方式的访问。工程虽然基于某一特定开发板,但是搭建步骤,IP核添加及驱动编写基本是通用的,可以做成一个复用的库。外加嵌入式IP CORE详细的理论剖析和详细的实践演示,提供部分工程集源码下载链接。本教程以最小系统的概念为切入点,详细演示最小系统搭建的每一个步骤;
2024-07-10 08:33:32
31
1
原创 运行并行仿真
parsim 命令允许您对模型(设计)运行并行(同时)Simulink® 仿真。在这种情况下,并行运行意味着在不同的工作进程中同时运行多个模型仿真。parsim 可在蒙特卡罗分析、参数扫描、模型测试、试验设计和模型优化等场景中,很方便地采用不同的输入或不同的参数设置运行同一模型。目前,不支持通过将模型分解为较小的组件并在多个工作进程中同时运行这些组件来并行运行整个仿真。要使用 parsim 并行运行仿真,您需要具有用于本地工作进程的 Parallel Computing Toolbox™。
2024-07-08 08:34:35
288
1
转载 VHDL、Verilog和SystemVerilog的比较
除了上面的语言特性比较之外,这里还有一些需要考虑的最后几点:SystemVerilog 是一个新兴的标准,仍在不断发展。SystemVerilog 拥有一系列引人注目的功能,是当前 Verilog 用户可能的迁移路径。但是目前一些综合工具支持的还不是支持的特别好~对于VHDL 用户,许多SystemVerilog 和Verilog 2001 增强功能已经以VHDL 语言提供。
2024-07-07 10:40:04
48
1
转载 FPGA硬核和软核处理器的区别
另外,虽然SoC FPGA芯片上既包含了有ARM,又包含了有FPGA,但是两者一定程度上是相互独立的,SoC芯片上的ARM处理器核并非是包含于FPGA逻辑单元内部的,FPGA和ARM(HPS)处理器只是封装到同一个芯片中,JTAG接口、电源引脚和外设的接口引脚都是独立的,因此,如果使用SoC FPGA芯片进行设计,即使不使用到片上的ARM处理器,ARM处理器部分占用的芯片资源也无法释放出来,不能用作通用的FPGA资源。一般来说,硬核处理器的性能要远远高于软核处理器。
2024-07-06 11:09:46
36
1
原创 C基础学习之C 错误处理
C 语言不提供对错误处理的直接支持,但是作为一种系统编程语言,它以返回值的形式允许您访问底层数据。在发生错误时,大多数的 C 或 UNIX 函数调用返回 1 或 NULL,同时会设置一个错误代码,该错误代码是全局变量,表示在函数调用期间发生了错误。您可以在 errno.h 头文件中找到各种各样的错误代码。所以,C 程序员可以通过检查返回值,然后根据返回值决定采取哪种适当的动作。开发人员应该在程序初始化时,把 errno 设置为 0,这是一种良好的编程习惯。0 值表示程序中没有错误。
2024-07-05 08:42:30
425
1
原创 C基础学习之C 字符串
其实,不需要把 null 字符放在字符串常量的末尾。C 编译器会在初始化数组时,自动把 \0 放在字符串的末尾。)又称结束符,缩写 NUL,是一个数值为 0 的控制字符,\0 是转义字符,意思是告诉编译器,这不是字符 0,而是空字符。在 C 语言中,字符串实际上是使用空字符 \0 结尾的一维字符数组。因此,\0 是用于标记字符串的结束。由于在数组的末尾存储了空字符 \0,所以字符数组的大小比单词。可以在 C 标准库中找到更多字符串相关的函数。下面的声明和初始化创建了一个。
2024-07-04 08:31:21
248
1
原创 C基础学习之C 共用体
为了定义共用体,必须使用union语句,方式与定义结构类似。union 语句定义了一个新的数据类型,带有多个成员。{...是可选的,每个 member definition 是标准的变量定义,比如 int i;或者 float f;或者其他有效的变量定义。在共用体定义的末尾,最后一个分号之前,您可以指定一个或多个共用体变量,这是可选的。float f;} data;现在,Data类型的变量可以存储一个整数、一个浮点数,或者一个字符串。
2024-07-03 08:41:24
416
1
原创 C基础学习之C typedef
C 语言提供了关键字,可以使用它来为类型取一个新的名字。下面的实例为单字节数字定义了一个术语在这个类型定义之后,标识符 BYTE 可作为类型也可以使用来为用户自定义的数据类型取一个新的名字。
2024-07-02 08:37:01
170
1
转载 XDC约束中加入注释,为什么会导致该约束失效?
在Vivado工程的调试中,xdc文件指定管脚后,我们偶尔会临时修改管脚位置,但之前的位置信息还想保留在xdc中,因此很多工程师就会选择将之前的管脚信息注释在修改位置的后面。比如下面的工程中,rxd_pin的位置本来是F25,我们需要临时改成E17,同时把F25注释到后面,表明这个位置之前是F25。首先大家需要知道的一点是,xdc里面的语句都是tcl脚本,所以语法也都是tcl的语法,如果语法错误,那xdc里面的内容也不会生效。再重新综合,打开管脚页面,可以看到,并没有任何错误和警告。
2024-07-01 08:34:04
37
1
原创 MATLAB中的滤波数据实现
滤波器是一种数据处理技术,可滤掉数据中的高频波动部分使之平滑或从数据中删除特定频率的周期趋势。在 MATLAB® 中,filter 函数会根据以下差分方程对数据 x 的向量进行滤波,该差分方程描述一个抽头延迟线滤波器。filter 函数是实现移动平均值滤波器的一种方式,它是一种常见的数据平滑技术。以下差分方程描述一个滤波器,它对关于当前小时和前三个小时的数据的时间相关数据求平均值。此方程中,a 和 b 是滤波器系数的向量,Na 是反馈滤波器阶数,Nb 是前馈滤波器阶数。
2024-06-30 21:00:41
341
1
原创 MATLAB中添加 Git 子模块
要重用其他存储库中的代码,可以指定 Git™ 子模块。要将外部 Git 存储库克隆为子模块,请执行以下操作:在 MATLAB 当前文件夹浏览器中点击右键,然后选择。在“子模块”对话框中,点击。在“添加子模块”对话框的框中,指定一个存储库位置。也可以点击。在框中,为子模块指定位置并点击。“子模块”对话框将会显示子模块的状态和详细信息。检查状态消息并点击。可以使用 Git 子模块来填充引用工程。
2024-06-29 09:53:44
322
1
转载 Verilog语言中case、casex、casez的用法和区别
有的网上说casex和casez属于不可综合语句,这是针对一般电路不会出现x状态来说的,但是综合工具并不会对x,z认识这个状态,所以综合出来的电路是一样的。,对于综合工具来说是一样的,所以case/casez/casex不同写法的综合结果,例子都是同样的。首先,case的描述,匹配都是从上到下进行的,如果使用了casez,看上面的casez的列表,只要输入有z/?在casex语句中,则把这种处理方式进一步扩展到对x的处理,即如果比较双方有一方的某些位的值是z或x,那么这些位的比较就不予考虑。
2024-06-28 08:35:06
123
1
原创 MATLAB中findall用法
与 findobj 函数不同,findall 会返回对象,即使其 HandleVisibility 属性设置为 'off' 也是如此。返回层次结构中指定属性设置为指定值的所有对象的句柄。例如,h = findall(gcf,'Type','text',Color','r') 返回当前图窗中的所有红色文本对象。要使用 findall 自定义您的搜索,您可以使用 objhandles,然后使用 findobj 函数的输入组合。使用 findall 返回所有 Text 对象或具有特定属性的 Text 对象。
2024-06-27 08:51:07
964
1
转载 SPI总线的特点、工作方式及常见错误解答
1.SPI总线简介 SPI(serial peripheral interface,串行外围设备接口)总线技术是Motorola公司推出的一种同步串行接口。它用于CPU与各种外围器件进行全双工、同步串行通讯。它只需四条线就可以完成MCU与各种外围器件的通讯,这四条线是:串行时钟线(CSK)、主机输入/从机输出数据线(MISO)、主机输出/从机输入数据线(MOSI)、低电平有效从机选择线CS。当SPI工作时,在移位寄存器中的数据逐位从输出引脚(MOSI)输出(高位在前),同时从输入引脚(MISO)接收的数据
2024-06-26 08:35:42
96
1
转载 深度学习FPGA实现数据计算
FPGA以擅长高速并行数据处理而闻名,从有线/无线通信到图像处理中各种DSP算法,再到现今火爆的AI应用,都离不开卷积、滤波、变换等基本的数学运算。但由于FPGA的硬件结构和开发特性使得其对很多算法不友好,之前本人零散地总结和转载了些基本的数学运算在FPGA中的实现方式,今天做一个系统的总结归纳。
2024-06-25 08:28:16
44
1
转载 FPGA学习-异步FIFO详解
FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,它与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据。异步FIFO 是指读写时钟不一致,读写时钟是互相独立的。
2024-06-24 20:46:36
232
1
Springboot框架项目实战-电商平台《伴我汽车》
2023-09-11
观测器的运用.pdf
2020-12-17
PCIE控制器问题?
2023-09-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人