自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (9)
  • 收藏
  • 关注

原创 AD9361系列-参考时钟

参考时钟输入源有两种方式:外部振荡器和外部参考时钟。当使用振荡器时,振荡器连接XTALN和XTALP两端,然后控制DCXO设置合适的参考时钟。当使用外部时钟直接将外部时钟连接到XTALN管脚(M12),然后跳过DCXO,连接到基带PLL和射频PLL。D4=1表示使用外部参考时钟,使能BBPLL,使能数字供电。RFPLL合成器 ,输出频率为80MHz。外部参数输入 ,输入频率为40MHz。接收合成器的参考时钟设置为2倍。发射合成器的参考时钟设置为2倍。

2023-02-27 22:34:29 1244 2

原创 DUC的matlab仿真

DUC的matlab实现

2022-06-19 10:09:40 529

原创 PYNQ之linux下多线程

linux操作系统下多线程使得流程设计更加方便,子线程申请一般使用下面函数:int pthread_creat(pthread_t *tidp,const pthread_addr_t *addr,void *(*start_rtn)(void),void *args);其中tidp为线程id号;addr为线程属性,通常为空;第三个参数为线程执行的函数指针,第四个参数为线程函数的参数,通常为空。若创建成功则返回0,未成功则返回错误号。在编译时由于...

2021-09-05 09:33:03 222

原创 BPSK调制解调matlab仿真

前面有上网在线方式搭建linux操作系统,这种方法非常方便,唯一的缺点是需要上网,像一些保密单位,上外网不方便,这样应用起来就非常不方便,于是考虑使用离线的方式。在网上应该还没有我这种方式方法。第一步:下载u-boot和kernel正常情况下是进入github的xilinx项目中下载,但是不晓得什么原因,github经常无法正常登陆,...

2021-08-15 15:53:01 6597

原创 PYNQ搭建系统-Petalinux上网方式

这几年陆陆续续接触很多ZYNQ的板卡,不同的板卡似乎都有不同的搭建系统的方式方法。一直在寻找一个通用的方式来完成所有zynq板卡搭建,ug1144中使用petalinux工具搭建系统应该是比较通用的方式方法。第一步:vivado工程编辑 这是使用的是vivado2018.3版本的vivado,虚拟机中安装的petalinux也是相应的版本。具体步骤略。第二步:导出硬件,新建SDK工程 这样在工程目录下以.sdk为后缀的文件夹中会有design_1_wra...

2021-07-03 16:17:51 652

原创 PYNQ裸跑之读写SD卡

去年搞了一年的算法,今年终于得空继续学学PYNQ,参考了网上的例子,发现发现SD卡读写是如此简单。第一步:在zynq中接口设置中选中SD卡,在pynq的默认配置中已经选中SD卡,所以这里不需要任何操作。第二步:在SDK中添加xilffs库第三步:添加函数文件sd.c/******************************************************************************** Copyright (C) 2009...

2021-04-10 14:48:44 630

原创 PYNQ2裸跑之音频ADAU1761

前面在qt和matlab中实现了音频的播放,最终目的是在底层硬件中实现数据播放,之所以使用裸跑是为了更好的理解音频codec的相关配置和IIC、I2S的接口的通用代码的开发和测试。 芯片ADAU1761 是一款低功耗、集成数字音频处理功能的立体声音频编解码器,支持立体 声 48 kHz 录音和回放,采用1.8V 模拟电源供电,功耗为 14mW。立体声音频 ADC 和DAC 支持 8 kHz 至 96 kHz 范围内的采样速率,并支持数字音量控制。 配置接口...

2021-04-10 14:29:43 2481

原创 PCM音频播放QT2

在实际项目中,用到更多的是Qt播放音频数据流。我测试过使用CSDN的定时器版本代码,会出现一些问题。QaudioOutput有两种模式,前面播放文件采用的是pull mode,这里采用push mode。Push模式可以采用定时器把数据写给QIODevice,这里还是使用MyDevice类来进行数据写入。功能:循环顺序播放三个音频文件流程:首先播放第一个文件,第一个文件播放完成播放第二个文件,第二个文件播放完成后,播放第三个文件,第三个文件播放完成后播放第一个文件。使用两个定...

2021-03-29 11:01:53 323

原创 音频播放1

在软件无线电中,经常需要做监听功能,需要把模拟或者数字解调话音进行播放,这个时候需要上位机或者底层DA进行音频播放。而一般采集或者解调的音频信号基本为PCM格式。获取PCM音频文件为了测试音频播放功能,第一步需要获取PCM音频文件。获取方式很多种,记录我所使用的两种方式方法。1.1 Qt例子程序获取打开audiorecorder例子工程,就可以看到以下界面:设置音频格式,文件类型,采样率和通道数,然后点击output选择文件存储路径,点击Record就可以开始正常录音,最后点击Stop

2021-03-23 21:33:11 235

原创 模拟FM调制解调matlab仿真

FM的调制解调相对AM复杂一些,网上也更多的是介绍AM解调,FM解调相对少很多,而且也很少FM的解调代码,但是在网上找到一个可以用,做了一点修改发现效果还不错,记录下来调制信号生成:clear;clf;close allFs=800e3;fz=80e3;fj=1e3;i=4096;A=1;Kf=0.2; t=(1:i)/Fs; tf=(1:i-1)/Fs; f=((1:i)-1)*Fs/i; tz=1; ...

2020-09-20 23:33:39 6972 2

原创 Qcustomplot使用记录

Qcustomplot是一个非常好用的第三方画图库,这里记录一下如何使用该IP。第一步:下载文件第二步:添加文件到工程2.1在main函数的头文件中添加头文件:#include "./qcustomplot/qcustomplot.h"2.2 在pro文件中添加printsupport支持,这因为qt是5.0以上版本QT += printsupport第三步:提升widget为Qcustomplot类void SCAN_ITU::cust...

2020-09-17 16:14:03 140

原创 模拟信号调制1

1、FM调频信号调频信号在广播中广泛应用,且在短波通信中,线性调频信号也会有很广泛的应用。调频信号的时域表达式如下所示: 其中是音频调制信号,调制角频偏。问:为什么需要对调制信号积分?解:表示的是信号的瞬时相位,如果是一个单音信号,信号的瞬时相位是从-pi到pi周期变化的。而对相位进行微分就是频率,所以FM信号的频率为。可以看出调制信号对载波信号的频率进行改变。假设调制信号是一个正...

2020-09-17 16:08:48 1700

原创 模拟信号调制2

4.单边带信号(SSB) 单边带是在双边带进行滤波得到的,过滤掉上边带,就是LSB,过滤下边带,就是USB。单边带时域表达式如下所示:LSB: USB: 是的Hilbert变换,也就是对该信号进行π/2的移相。Matlab实现USB调制:baseFm= cos(2*pi*Fm*t);...

2020-09-17 16:08:28 920

原创 功率放大器2-模型

1.功放非线性特性 功放在饱和区会出现非线性,而非线性表现在幅度和相位上,幅度和相位曲线如下图所示:2.功放模型 功放可以分无记忆和记忆系统模型两种。2.1 Saleh模型 Adel.A.M.Saleh在1982年提出Saleh模型,主要用于描述行波管功率放大器(Traveling Wave Tube Amplifier,TWTA)的非线性特性,TWTA的AM/AM特性和AM/PM特性都非常明显,Saleh模型曲线拟合模型极坐标系表达...

2020-09-15 20:58:52 4464 4

原创 功率放大器Power Amplifiers1-基础

1.PA的非线性 功放非线性是指当功放的输入信号为小电流信号时,输出功率随着输入功率线性增加,输出信号功率与输入信号功率比值不变,即增益为一固定值,称这一状态为线性状态。当功放输入大电流信号时,输出信号与输入信号的功率比发生变化,且功率比逐渐减小,即增益出现压缩现象。最终结果为输入信号功率增加,而输出功率不变,称这一状态为饱和状态。为了提高功放效率,使得信号发射距离更远,需要将功放长期工作在饱和区。但是功放在未达到饱和状态之前,增益已经出现压缩,也就是所谓的功放非线性失真。 ...

2020-09-14 19:43:06 5793 2

原创 Matlab中如何使用fdattool

fdatool设置,在matlab输入fdatool可以保存为函数文件名称为fir1,生成的m文件内容为function Hd = fir1%FIR1 Returns a discrete-time filter object.% MATLAB Code% Generated by MATLAB(R) 9.0 and the Signal Processing Toolbox 7.2.% Generated on: 16-Nov-2018 15:57:29..

2020-08-05 19:55:35 1119

原创 matlab读取CSV文件

在vivado抓取数据后,或者quartus中逻辑分析仪抓取数据后,都可以导出为csv文件。matlab可以很方便使用csv文件,具体读取如下所示:function csv_data =fread_csv(filename,row1,colum1,row2,colum2,row3,colum3,row4,colum4,len)fid = csvread(filename,row1,colum1,[row1,colum1,(row1+len),colum1]);fid2 = csvread(fil

2020-08-02 10:48:41 2935

原创 modelsim仿真读写文件

FPGA在做功能仿真过程中,例如算法实现,数据处理等,往往需要把实际采集的数据作为仿真的输入,所以需要实现对文件数据的读写操作,具体读写操作代码如下所示:`timescale 1ns / 100psmodule wr_rd_file#( parameter FILE_NUM = 2, parameter DATA_WITH = 32, parameter DATA_LEN = 2048)( input clk , input rst_n , input

2020-08-02 10:36:08 1097 2

原创 获取FPGA芯片序号

往往可以通过获取xilinx芯片的DNA,然后再进一步加密运算,就可以实现代码的加密。具体获取DNA的代码如下所示:module dna_read( input sys_clk, input rst_n, output [95:0] dna_read_data, output dna_read_vld);wire dna_dout;wire dna_read;wire dna_shift; DNA_PORTE2 #( .SIM_DNA_VALUE(

2020-08-02 10:16:58 1600 1

原创 Qt基础篇---线程使用

换了新部门,对FPGA底层的使用不多,更多的是c和c++,于是开始了Qt界面的学习,在练习c和c++的同时,学习做界面,很多测试就不需要依赖别人。 Qt中的QThread类提供了平台无关的线程。一个QThread代表了一个在应用程序中可以独立控制的线程,它与进程中的其他线程分享数据,但是独立执行的。相对于一般的程序都是从main()函数开始执行,QThread从run()函数开始执行。默认的,run()通过调用exec()来开启事件循环并在线程内运行一个Qt事件循环。要创建一个线程,需要子...

2020-05-17 15:54:45 475

原创 PYNQ2裸跑之网络

Zynq中所有开发板都是以lwip echo例程来检测网络硬件是否正常,实际做项目中,该pro会显得很繁琐。借鉴了FPGADesigner的博客,对软件提供的例子工程进行了简化修改。我所使用vivado版本:2018.3第一步:新建工程 将PYNQ2板卡文件复制到“Xilinx\Vivado\2018.3\data\boards”,就可以进行板卡预配置。如果没用可...

2020-04-20 22:32:41 409

原创 Vivado中FFT9.0仿真2

1.仿真环境搭建一开始准备用vivado自带的仿真器来仿真,发现一直报错,类似于没有库文件。然后想到需要用modelsim仿真,可是发现用10.4c仿真,vivado还是报错,差异在于以前vivado版本是17.2,现在为18.1。探索很久,查阅18.1版本说明,需要使用10.6c版本的modelsim。下载10.6c版本的modelsim安装该部分略编译仿真库在model...

2020-04-03 16:12:53 859

原创 记忆管理之xilinx生成网标文件

1.将需要封装的模块设置为顶层模块2.更改综合配置More options -mode out_of_contextFlatten_hierachy full3.综合,完成后打开综合4.2017.4以前版本输入以下XX为模块名称输入 write_verilog -mode port F:/FPGA/XX.v2018.1以后输入 write_verilog -mode synth...

2020-02-25 20:12:52 391

原创 烧写QSPI

在裸跑中需要将代码固化在QSPI中,需要烧写QSPI1、新建fsbl在裸跑的工程中打开SDK,File—>NEW—>Application Project, 名称设置为fsbl。2、创建Image右击fsbl-->Create Boot Image添加裸跑的elf文件3、烧写bin添加刚刚生成的BOOT.bin文件同时添加fsbl中...

2019-12-26 15:54:54 748

原创 在petalinux生成SD卡启动镜像文件

这个部分也是参考开发板和别人写的文章最终在开发板上实现,为了便于记忆,放网上记录一下。1、生成hdf文件这一部分在vivado新建工程,然后生成bit文件,然后导出硬件,在根目录下有hdf文件。2、在linux下新建工程2.1在桌面创建一个工程目录,进入该目录cd ~/Desktop/mkdir petalinux_pro2cd petalinux_pro22.2 设置petal...

2019-12-25 09:44:21 1333

原创 ZYNQ中BRAM的使用

BRAM用来传输命令很方便,不管是在linux系统下还是裸跑。第一步:在PL端添加IP后,一般默认设置。第二步:在addr中设置大小,这里设置64k 这里设置完后,再打开IP会发现大小并没有改变,这是因为没有综合。第三步:添加io,把BRAM的输出设置为IO,并双击,设置为READ WRITE. 第四步:综合综合我们的IP,结束后,再打开,会发现深度变...

2019-11-18 21:31:14 3710

原创 PYNQ2中第一个linux程序

尝试了很多裸跑下的功能测试,发现对于网口通信还是在linux系统下,流程控制更加方便,于是有了linux第一个应用程序:点亮LED.1、硬件设置新建工程,添加gpio如下所示:找到分配的物理地址,如下所示:添加管教约束xdcset_property IOSTANDARD LVCMOS33 [get_ports {GPIO_tri_o[0]}]set_property IOSTAND...

2019-07-01 20:14:18 450

原创 验证DDS输出

1、配置DDS的IP设置输出位宽和相位位宽,时钟设置为100MHz。设置为stream默认2、添加仿真tb`timescale 1ns / 100psmodule AA_tb( ); reg clk;reg rst_n;initialbegin #0 clk = 1'b0; #2 rst_n = 1...

2018-11-09 13:32:25 907 2

原创 PYNQ2中USB Webcam

1、网络摄像头  该摄像头为很久以前用来视频的摄像头,直接插在USB接口上,免驱。2、打开主页http://192.168.2.99:9090/notebooks/common/usb_webcam.ipynb然后在common中选择usb webcam工程,此时照片为默认的照片。3、运行运行后的结果如下图所示,照片变成摄像头拍摄的照片。4、代码分析from...

2018-11-09 08:37:41 3191 2

原创 Vivado FFT9.0仿真验证

      在网上看了很多的介绍,基本都是一样的,但是根据这些博客,自己验证了下发现结果和matlab中不一样。1.配置IP核      用vivado17.2 IP版本为9.0,配置首先配置最大长度为64,时钟为100MHz,将长度可以改变选中,如下图所示:进一步的配置,设置数据为整型,未缩放,输入16bit,输出自然顺序(不然虚部不方便验证)。第三页默认2.tb...

2018-11-08 14:50:08 2669 3

原创 Zynq3-PL端中断请求

1、参考   米联客的PL端中断请求。主要是为了更直接的感受中断过程和SDK中中断处理函数。2、搭建工程   生成zynq,自动连线,选中中断,普通中断,如下图所示:然后添加GPIO0,允许中断,设置为input 位宽为1,然后添加GPIO1,设置为output ,位宽为4。需要注意的是,如果一切都按照默认的来,GPIO0和GPIO1会变成6bit,需要清除board配置,如下图所...

2018-10-30 16:30:48 570

原创 PYNQ2之ZYNQ的PS读写DDR

1、前期准备       和前面的不一样这里需要用到DDR,所以需要在PS中正确配置DDR,这也是看别人zedboard板卡教程自己却一直实行不了的原因。问题一:串口打印问题       首先是串口驱动问题,网上下载驱动,安装一直提示未正确安装驱动,设备工作不正常。      解决方法:板卡接上电脑,开机,然后联网,打开360驱动大师,然后会出现一个未安装驱动的USB设备,然后点击...

2018-10-29 21:01:51 5943 4

原创 P2中ZYNQ的PS控制PL端LED

第一个ZYNQ的实验,用于熟悉开发环境和板卡,通过GPIO控制LED,由于P2在ps端没有LED,所以需要通过axi总线控制PL端LED。1、参考设计参考的是黑金的《PL 端和 PS 端的协同设计流水灯实验 》。2、新建工程新建一个工程,选择zynq的FPGA,然后Create Block Design,然后右击Add ip,输入zynq,如下图所示:然后更改里面配置,首先...

2018-10-29 20:55:03 2528 3

原创 PYNQ-Z2开机测试

前期准备在淘宝买了块P2,950版本,只有一块板卡,其他什么也没有。所以需要准备以下:1、一张8GB以上的micro SD卡;2、一根网线;3、安卓手机充电线一根;4、SD读卡器一个。5、路由器(这个不是必须的)。烧写镜像,用Win32DiskImager软件烧写镜像,镜像可以在http://www.tul.com.tw/ProductsPYNQ-Z2.html下载。2.板子连接...

2018-10-26 10:20:40 5465 4

BPSK_matlab.rar

BPSK基带高斯白噪声信道下调制解调matlab仿真

2021-08-15

pynq2裸跑循环播放语音源码

pynq2裸跑循环播放语音源码

2021-04-11

CRC-8测试软件和verilog源码

测试表示verilog和测试工具计算一致

2021-04-01

new_pcm.zip

qt播放pcm文件,采用push模式,含pcm文件

2021-03-31

实现matlab录音功能.m

实现matlab录音功能

2021-03-29

Untitled.m

模拟信号fm调制解调matlab代码,经过测试发现结果正确,可以下载测试测试。使用正交调制方式来完成。

2020-09-20

功率放大器1.docx

功放的一些基础知识,且非线性指标的总结,例如IMD,ACPR、1db压缩点。并对功放的分类和效率进行归纳

2020-09-14

pynq2中udp收发工程udp.zip

zynq中udp收发工程,主要是在pynq2平台下进行了udp收发的代码整理,实现了定时器发,和收udp包,能正确收发

2020-04-20

pynq2中zynq的IP预配置脚本

PYNQ-Z2中zynq ip核的预配置tcl,当板卡无法自动预配置,可以在ip核中presets中apply configuration该脚本来预配置

2020-04-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除