数字信号处理
文章平均质量分 77
FPGADesigner
目标成为FPGA开发设计/仿真验证的预备军~
展开
-
MATLAB数字信号处理(3)计算方式生成随机序列
信号检测、估计和通信等问题都需要经仿真进行性能分析,产生服从特定分布的随机变量至关重要。MATLAB中提供了现成的函数random,可以产生服从某种确定分布的随机序列。还有一些其它函数,比如exprnd专门用于产生服从指数分布的随机序列,但总体上random要更为通用。我们平时只管调用函数即可,简化工作量,而无需关心random函数背后的计算原理。最近学习的《信号检测与估计-理论与应用》简单介...原创 2019-04-23 19:24:00 · 9396 阅读 · 4 评论 -
学会System Generator(6)设计优化与导入MATLAB变量
本文是该系列的第6篇。第2篇中以数字滤波器的设计为主题,介绍了System Generator的完整设计流程;第4篇对设计进行了资源分析。本文将在此基础上,讨论如何对设计进行优化,以及介绍System Generator可以导入MATLAB的工作区(workspace)变量的特性。优化设计在第4篇中我们进行了设计的资源分析,结果如下: 该设计使用了6个DSP单元,这是因为该FI...原创 2018-07-07 12:27:26 · 2476 阅读 · 0 评论 -
FPGA数字信号处理(24)数字相关器设计(简化结构)
广义地讲,数字相关器件就是完成两路信号之间的相关运算。该技术应用于帧同步字检测、扩频接收机、误码矫正、模式匹配等领域。但就数字相关器本身实现的功能而言,具有更为广泛、通用的应用,如在“基于可编程逻辑器件FPGA的数字相关器_马玉良”这篇论文中,就将数字相关器中应用在动态光散射技术中的散射光强的自相关函数计算上。本文将先讨论数字相关器在帧同步字检测应用中的设计方法。帧同步字检测在数字...原创 2018-07-24 17:47:55 · 6476 阅读 · 4 评论 -
学会System Generator(5)Gateway In和Gateway Out详解
本文是该系列的第5篇。第2篇中以数字滤波器的设计为主题,介绍了System Generator的完整设计流程。本文将对其中使用到的Gateway In和Gateway Out模块进行详细介绍。Simulink到FPGA的转换Simulink中的仿真模型为连续时间系统,数据格式多种多样;而FPGA中为离散时间系统,数据必须用一定的位数进行量化。两者之间必须要进行从连续到离散的转换、数...原创 2018-07-06 20:01:09 · 5182 阅读 · 3 评论 -
学会System Generator(4)资源分析与时序分析
本文是该系列的第4篇,第2篇以数字滤波器的设计为主题,介绍了System Generator的完整设计流程;第3篇介绍了 System Generator导出设计的说明文档和testbench的特性。本文将介绍System Generator对设计进行资源分析和时序分析的相关方法。查看分析结果本文在第2篇设计的数字滤波器模型基础上运行分析。System Generator集成了时序分析...原创 2018-07-06 11:33:02 · 4373 阅读 · 6 评论 -
学会System Generator(3)生成说明文档与testbench
本文是该系列的第3篇,上一篇以数字滤波器的设计为主题,介绍了System Generator的完整设计流程,最后自己编写testbench在示例工程中对System Generator导出的IP核进行测试。其实System Generator就可以导出整个设计的说明文档以及一个testbench,本文将介绍如何使用该特性。生成说明文档本文在上一篇设计的数字滤波器模型基础上进行修改。...原创 2018-07-06 10:09:53 · 4390 阅读 · 0 评论 -
学会System Generator(17)转置型FIR滤波器设计
本文是该系列的第17篇。上一篇介绍了使用低层次封装的block搭建直接型FIR滤波器结构的方法,对设计进行时序分析,并将设计流水线化来提高系统的工作频率。转置型FIR滤波器是一种由直接型FIR滤波器变换而来的结构,在几乎相同的结构下有着更好的性能,本文将对此做介绍。转置型FIR滤波器滤波器结构框图如下: 直接型FIR滤波器是对输入数据做寄存,这样当设计没有采用流水线时,最长...原创 2018-07-12 17:52:23 · 3480 阅读 · 0 评论 -
学会System Generator(2)数字滤波器设计
本文是该系列的第2篇,上一篇介绍了System Generator的基本知识以及软件的安装。本文将以一个简单的数字滤波器的设计为主题,介绍Sysgem Generator的完整设计流程,同时详细介绍使用到的各个block。本设计使用到的block1.Xilinx block:Digital FIR Filter(->DSP):数字滤波器 Gateway In(-&原创 2018-07-05 19:32:20 · 13118 阅读 · 32 评论 -
学会System Generator(1)入门与安装
记录《学会System Generator》系列的目的是为了熟练掌握Xilinx公司旗下System Generator产品的使用。本文是该系列的第一篇,主要介绍System Generator的基本知识以及软件的安装。System Generator基本特性System Generator是一款DSP设计工具,其借助MATLAB中的Simulink开发环境完成FPGA的设计。这是...原创 2018-07-05 14:29:09 · 20732 阅读 · 3 评论 -
FPGA数字信号处理(23)FSK解调技术(包络检波法)
上一篇介绍了数字通信系统中FSK调制技术的FPGA实现。调制信号经过DAC、可选的带通滤波器、功率放大器、天线发送出去后,在接收端收到FSK信号后需要对其解调,提取出包含的信息(基带信号)。FSK解调由上一篇可知,FSK调制信号可以视作两路ASK调制信号的合成,因此可以得到与ASK解调原理相似的FSK解调方法(ASK解调在第11篇中有讨论)。对应的包络检波法(非相干解调)的系统框图如下...原创 2018-07-23 17:04:56 · 24762 阅读 · 5 评论 -
学会System Generator(16)流水线设计方法详解
本文是该系列的第16篇。流水线(pipeline)是FPGA设计中经常提到的一种技巧,通过消耗更多的资源来提升系统的运行速度。本文将以FIR滤波器的设计为主题,详细介绍如何把一个设计“流水线化”,并进行时序分析体会流水线设计带来的好处。流水线这里先用通俗易懂的语言描述一下流水线设计思想。假设小A要从成都到哈尔滨旅游,如果直接坐火车过去恐怕要累得受不了;如果在旅程中间加几站,比如到西...原创 2018-07-11 20:45:57 · 3999 阅读 · 5 评论 -
FPGA数字信号处理(22)FSK调制技术
本系列的10~13篇介绍了数字通信中ASK调制解调技术的实现。本文将介绍数字通信系统中FSK调制技术的FPGA实现,后面的文章将介绍FSK解调。FSK调制FSK是利用载波的频率表示基带信息,比如在2FSK系统中,采用单频信号f1表示信息0、单频信号f2表示信息1。根据码元转换时载波的相位是否连续,分为非连续相位FSK和连续相位FSK,如下图所示: 第三幅图为连续相位FSK调制,...原创 2018-07-23 13:28:04 · 23371 阅读 · 5 评论 -
学会System Generator(18)音频信号采集与输出
本文是该系列的第18篇。数字信号处理的内容博大精深,音频信号处理、数字图像处理、雷达信号处理等等都属于DSP系统。从本文开始将记录一些简单的音频信号处理算法在System Generator中的实现方法。本文将介绍如何搭建音频信号的采集与输出模型。音频信号基础概念音频信号属于一维信号,一些基本概念如下:采样频率:根据奈奎斯特采样定理,采样频率Fs应该不低于声音信号中最高频率2倍。...原创 2018-07-13 15:36:17 · 4313 阅读 · 2 评论 -
学会System Generator(7)选择最佳数据类型
本文是该系列的第7篇。第2篇中以数字滤波器的设计为主题,介绍了System Generator的完整设计流程。不过仍然有些问题需要解决:如何选择一个最合适的数据类型(以最少资源达到性能需求)?如何选择系统的输出位宽(保证信号不失真)?传统的HDL模型设计方法中,博主通常会用MATLAB进行仿真,确认位宽对数据量化的影响;或在Vivado中仿真,截取合适的滤波器输出位数。System ...原创 2018-07-07 17:21:05 · 3271 阅读 · 1 评论 -
MATLAB数字信号处理(2)LFM脉冲雷达回波处理仿真
将上学期的“气象雷达原理与系统”课程报告放到blog上。摘要线性调频(LFM)信号是应用广泛的一种波形,主要优点是脉冲压缩的形状和信噪比对多普勒频移不敏感,即在目标速度未知的情况下,用匹配滤波器仍可以实现回波信号的脉冲压缩,这将大大有利于雷达对目标的探测和信号处理效率的提高。本设计实现了对线性调频(LFM)脉冲压缩雷达的工作原理仿真,在MATLAB 平台中模拟一个叠加的线性调频回波信号,对该...原创 2019-03-13 15:41:24 · 52262 阅读 · 38 评论 -
MATLAB数字信号处理(1)四种经典功率谱估计方法比较
这是我研究生课程“现代信号处理”中的作业报告,上传到blog中。经典功率谱估计可以采用直接法,也称周期图法,利用公式计算功率谱密度。或者根据自相关函数和谱密度之间的傅里叶变换关系来计算,称为间接法或自相关函数法。还可以先作加窗平滑处,对序列x(n)或估计的自相关函数进行加窗(如汉宁窗、汉明窗)截断,前者称作数据窗,后者称作滞后窗。MATLAB编程实现对信号x(n)=sin(ωt)...原创 2019-03-13 14:37:46 · 19484 阅读 · 9 评论 -
FPGA基础设计(6)使用DAC的Interleaved模式
本文介绍DAC芯片的Interleaved模式的使用,或者叫交错模式。硬件设计与接口协议Interleaved模式即用一组数字接口控制两个模拟信号输出,比如ADI公司的AD9763/AD9765/AD9767系列,具有双路10/12/14比特输出,最高时钟125M,可以采用dual-port模式或Interleaved模式。双口模式的用法和本系列第5篇中的介绍基本相同,本文着重讲述一下交错模...原创 2018-10-25 23:41:56 · 3968 阅读 · 4 评论 -
FPGA数字信号处理(27)卷积编码器与Viterbi译码器设计
卷积编码与译码信号在信道间传输主要会受到三个方面的影响:信道本身对信号产生衰落,这是由于信道本身的频率响应特性就不理想,对信号造成破坏;信道中的各种噪声,叠加在信号上改变了信号的幅度、相位、频率,造成解调错误;多径效应,信号在传输过程中的反射、折射、沿不同路径传播造成的叠加效应。通常会采用信道编码,在发送端插入一些冗余码元,接收端利用这些冗余码元检测并纠正信号在传输过程中产生的错误。...原创 2018-09-18 12:38:46 · 10715 阅读 · 26 评论 -
FPGA数字信号处理(26)加扰器与解扰器设计
加扰与解扰设计数字通信系统时,必须考虑发送信息的信号特征,这些特征会影响到设计性能。总的来说,发送的信息应注意:(1).避免出现长串的0或1,否则对于从0、1交换点处提取位同步信息的系统,容易错判导致失去同步;(2).避免传输信号具有周期性,否则在多路传输的通信系统中容易造成串扰。信道编码中的加扰器和解扰器便是完成上述功能,将发送信号处理成没有长传的0或1,并且数字信号最小周期足够长。对信...原创 2018-09-17 14:44:40 · 12472 阅读 · 8 评论 -
FPGA数字信号处理(25)数字相关器设计(经典结构)
上一篇介绍了帧同步字检测、数字相关器的一些基本概念,并设计了一种简化模型的数字相关器(异或单元+累加器)。本文将完成经典结构(移位寄存器+乘法器+累加器)的数字相关器的设计。MATLAB设计假设一帧包含1500个字节,前165个为帧同步字,后1350个为信息码元。由上一篇知数字相关器的经典结构如下: 延时线取值为采样时钟与数据码元时钟的倍数。在MATLAB中生成随机测试数据,进...原创 2018-08-02 12:06:40 · 5230 阅读 · 4 评论 -
FPGA数字信号处理(十三)锁相环位同步技术的实现
前面介绍了数字通信系统中ASK解调技术的FPGA实现,以及判决门限选择的问题。本文将介绍解调系统中的位同步技术,只有在位同步模块的控制下,才能正确的提取出基带信号中携带的数据。本文设计参考自杜勇老师的《数字调制解调技术的MATLAB与FPGA实现》。位同步位同步模块的主要作用是产生一个与输入数据频率一致的时钟信号,保证每一位数据判决一次,且最好在信噪比最大的时刻进行判决。目前常用的...原创 2018-07-22 16:47:16 · 20169 阅读 · 12 评论 -
学会System Generator(20)基于LSB算法的数字水印技术
本文是该系列的第20篇。数字水印是一种将标识信息嵌入到载体当中,且不影响载体使用的一种技术,主要分为时域水印嵌入算法(将水印嵌入到时域采样数据中)和变换域水印嵌入算法(先对音频做变换,将水印嵌入到变换域系数中)。本文将介绍一种简单的时域水印嵌入算法——LSB算法。LSB算法通常数字水印技术有不可感知性的要求,即嵌入数字水印后载体数据发生了变化,但是不会影响到该数据的使用,对使用者而...原创 2018-07-13 22:56:38 · 3148 阅读 · 0 评论 -
学会System Generator(8)Reinterpret和Convert详解
本文是该系列的第8篇。第2篇中以数字滤波器的设计为主题,介绍了System Generator的完整设计流程;第7篇介绍了其中数据类型的选择与位宽截断的问题。本文将对其中使用到的Reinterpret和Convert模块进行详细介绍。模块功能概述数据转换,数据类型、位宽等问题都会影响到计算精度,对于设计者而言,需要考虑的就是相关影响是否可以接受,即是否会影响到实际的系统性能。FPG...原创 2018-07-07 23:05:47 · 3760 阅读 · 3 评论 -
学会System Generator(19)增量调制(DM)编码解码
本文是该系列的第19篇。语音编码压缩的目的是在尽量不损失信息的情况下降低码率,从而节省存储空间和通信带宽。To Multimedia File这个block就提供几种语音压缩方式:CCITT A律、CCITT μ律、GSM 6.10、PCM、ADPCM。本文将介绍一种很简单的增量调制(DM)编码方式。DM编解码DM(Delta Modulation)编码的原理很简单,信号处理的学习者对...原创 2018-07-13 17:47:41 · 4268 阅读 · 0 评论 -
学会System Generator(15)三种数控振荡器设计方法
本文是该系列的第15篇。数字控制振荡器(NCO)是FPGA中常用的一个模块,在《FPGA数字信号处理系列》第一篇就对其做了相关介绍。System Generator中的block大致可以分为两类:高层次封装(面向系统级,如第2篇设计中用到的Digital FIR Filter)和低层次封装(面向底层,与FPGA资源的联系更直接)。本文将采用IIR滤波器、DDS、DDS Compile IP核3...原创 2018-07-11 16:05:51 · 5727 阅读 · 12 评论 -
FPGA数字信号处理(21)多级半带(HB)滤波器设计
本篇是FPGA数字信号处理的第21篇,上一篇介绍了半带滤波器的相关知识以及单级半带滤波器的设计方法。单级半带滤波器只能实现2倍抽取,本文将介绍可实现2^N倍抽取的多级半带滤波器的设计方法。多级半带滤波器多级半带滤波器是一个级联系统,设计需要考虑的最大问题就是如何分配各级的参数以实现整体的性能指标要求。这里假设抽取滤波的总体要求为:通带截止频率fp,通带波纹δp,阻带截止频率fs,阻带波...原创 2018-07-04 16:41:24 · 13168 阅读 · 3 评论 -
FPGA数字信号处理(十一)ASK解调技术
上一篇介绍了数字通信系统中ASK调制技术的FPGA实现。调制信号经过DAC、可选的带通滤波器、功率放大器、天线发送出去后,在接收端收到ASK信号后需要对其解调,提取出包含的信息(基带信号)。无论在哪种调制解调系统中,解调总比调制要复杂很多,本文开始将介绍ASK解调系统的实现。ASK解调ASK信号的解调有包络检波法(非相干解调)和同步检测法(相干解调)两种方法。同步检测法系统框图如下...原创 2018-06-17 14:12:13 · 24506 阅读 · 9 评论 -
FPGA综合系统设计(七)基于DDC的两路信号相位差检测
概述本文记录一个简单的数字信号处理综合系统。在这个设计实例中,由DDS生成模拟中频信号与本振信号,使用DDC(Digital Down Converter,数字下变频)提取出同相分量i和正交分量q,计算两路信号之间的相位差,将测量结果通过串口发送至PC,使用Qt上位机做界面显示。这是一些完成本文设计的参考文章: 1. DDS IP核的使用参考FPGA数字信号处理(一)数字混频(NCO与...原创 2018-06-23 17:13:47 · 15298 阅读 · 11 评论 -
FPGA数字信号处理(十四)Vivado Cordic IP核计算arctan
在数字信号处理系统中经常需要计算arctan函数,比如在解调系统中由DDC得到复基带信号q和i支路计算arctan(q/i)即可得到基带信号的相位。在FPGA设计中可以使用CORDIC算法来实现arctan。本文将介绍在Vivado开发环境下如何使用Xilinx提供的Cordic(6.0) IP核计算arctan。该IP核还可以实现其它CORDIC算法可实现的功能,将在后面的文章中介绍。...原创 2018-06-23 00:21:00 · 24313 阅读 · 2 评论 -
FPGA数字信号处理(九)Vivado FFT IP核实现
该篇是FPGA数字信号处理的第9篇,选题为DSP系统中极其常用的FFT运算。上篇介绍了Quartus环境下FFT IP核的使用“FPGA数字信号处理(八)Quartus FFT IP核实现https://blog.csdn.net/fpgadesigner/article/details/80690345 ”。本文将介绍在Vivado开发环境下使用Xilinx提供的FFT IP核进行FFT运算的设...原创 2018-06-14 16:27:45 · 39077 阅读 · 50 评论 -
FPGA数字信号处理(八)Quartus FFT IP核实现
本系列的2-7篇分别介绍了FIR和IIR滤波器的FPGA实现。除了数字滤波器外,快速傅里叶变换(FFT)也是DSP系统常用的运算单元,用于对信号进行频域分析。FFT算法的实现很复杂,但Altera和Xilinx都提供了可快速上手使用的IP核。本文将先介绍如何使用Quartus的FFT IP核进行频谱分析。IP核概述由于版本的关系,Quartus提供的IP核有两种,老版本集成在“Mega...原创 2018-06-14 11:22:07 · 36175 阅读 · 43 评论 -
FPGA数字信号处理(七)级联型IIR滤波器Verilog设计
该篇是FPGA数字信号处理的第七篇,上一篇介绍了直接型IIR滤波器的原理,详细介绍使用Verilog HDL设计直接型IIR滤波器的方法。本文会介绍如何用Verilog HDL设计级联型IIR滤波器。级联型IIR计算速度快,占用资源少,比起直接型更为常用。 IIR滤波器将IIR滤波器系统函数的分子分母进行因式分解(分解为实数和复共轭对),再将每一对共轭因子合并为实数二阶因子: ...原创 2018-06-11 17:32:26 · 12262 阅读 · 1 评论 -
FPGA数字信号处理(六)直接型IIR滤波器Verilog设计
该篇是FPGA数字信号处理的第六篇,2-5篇介绍了DSP系统中极其常用的FIR滤波器。本文将简单介绍另一种数字滤波器——IIR滤波器的原理,详细介绍使用Verilog HDL设计直接型IIR滤波器的方法,下一篇会介绍如何用Verilog HDL设计级联型IIR滤波器。 数字滤波器数字滤波器从实现结构上划分,有FIR和IIR两种。FIR的特点是:线性相位、消耗资源多;IIR的特点是:非线...原创 2018-06-11 15:05:00 · 23130 阅读 · 13 评论 -
FPGA数字信号处理(五)Vivado FIR IP核实现
该篇是FPGA数字信号处理的第五篇,选题为DSP系统中极其常用的FIR滤波器。本文将在前三篇的基础上,继续介绍在Vivado开发环境下使用Xilinx提供的FIR IP核进行FIR滤波器的设计。1.“FPGA数字信号处理(二)并行FIR滤波器Verilog设计” https://blog.csdn.net/fpgadesigner/article/details/80594627 2.“F...原创 2018-06-08 12:04:59 · 31604 阅读 · 25 评论 -
FPGA数字信号处理(四)Quartus FIR IP核实现
该篇是FPGA数字信号处理的第四篇,选题为DSP系统中极其常用的FIR滤波器。本文将在前两篇的基础上,继续介绍在Quartus开发环境下使用Altera(或者叫Intel)提供的FIR IP核进行FIR滤波器的设计。1.“FPGA数字信号处理(二)并行FIR滤波器Verilog设计” https://blog.csdn.net/fpgadesigner/article/details/8059...原创 2018-06-07 10:47:08 · 26575 阅读 · 24 评论 -
FPGA数字信号处理(三)串行FIR滤波器Verilog设计
该篇是FPGA数字信号处理的第三篇,选题为DSP系统中极其常用的FIR滤波器。本文将在上一篇“FPGA数字信号处理(二)并行FIR滤波器Verilog设计” https://blog.csdn.net/fpgadesigner/article/details/80594627的基础上,继续介绍串行结构FIR滤波器的Verilog HDL设计方法。串行FIR并行FIR使用n/2(借助线性...原创 2018-06-06 18:07:16 · 17334 阅读 · 27 评论 -
FPGA数字信号处理(二)并行FIR滤波器Verilog设计
该篇是FPGA数字信号处理的第二篇,选题为DSP系统中极其常用的FIR滤波器。本文将简单介绍FIR滤波器的原理,详细介绍使用Verilog HDL设计并行FIR滤波器的流程和方法。接下来几篇会介绍串行结构FIR的Verilog设计、使用Quartus和Vivado的IP核设计FIR的方法。 数字滤波器数字滤波器从实现结构上划分,有FIR和IIR两种。FIR的特点是:线性相位、消耗资源多...原创 2018-06-06 14:38:50 · 32129 阅读 · 21 评论 -
FPGA数字信号处理(十二)滑动平均滤波器
上一篇介绍了数字通信系统中ASK解调技术的FPGA实现。在ASK解调系统中,需要对低通滤波器提取出的基带包络信号做判决输出,本文将介绍其中涉及到的判决门限问题,以及在FPGA中的实现方法。判决门限由上一篇可知,LPF输出的基带包络信号包含有直流分量。2ASK信号只有2种电平状态,因此只需要将基带波形的直流分量作为判决门限即可。4ASK信号有4种电平状态:最大幅度的0、1/3、2/3...原创 2018-06-17 17:23:24 · 17104 阅读 · 4 评论 -
FPGA数字信号处理(十五)多速率FIR滤波器
该篇是FPGA数字信号处理的第15篇,选题为多速率信号处理系统中用到的多速率FIR滤波器。本文将简单介绍多速率信号处理系统的基本概念,以及使用Quartus和Vivado的IP核设计多速率FIR滤波器的方法。多速率信号处理这个概念是相对于单速率(Single Rate)信号处理而言的。单速率是指整个信号处理流程中只有一种数据速率;多速率是指系统中存在多个数据速率。使用多速率信号处理...原创 2018-07-01 16:37:58 · 14971 阅读 · 4 评论 -
学会System Generator(14)不同溢出与量化方式的对比
本文是该系列的第14篇。第5篇中在介绍Gateway In block时谈到了System Generator中的数据类型,及不同的量化和溢出方式。本文将以两个简单的设计实例,更直观地说明不同的量化和溢出方式有什么区别。溢出(Overflow)方式对比从Simulink向System Generator的数据转换过程中可能会出现溢出(Simulink中的值超出了所设置数据格式能够表...原创 2018-07-10 20:14:46 · 2633 阅读 · 2 评论