滤波器之matlab与vivado的联合仿真

这篇具有很好参考价值的文章主要介绍了滤波器之matlab与vivado的联合仿真。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、目录

    1、matlab产生滤波器

    2、matlab进行仿真

    3、搭建vivado测试电路

    4、vivado仿真

二、matlab产生滤波器

    本文采用FIR低通滤波器,在命令行输入fdatool进入滤波器配置页面,如下配置

    vivado和matlab关联,FPGA,matlab,开发语言,fpga开发

    vivado和matlab关联,FPGA,matlab,开发语言,fpga开发

        导出滤波器函数

        vivado和matlab关联,FPGA,matlab,开发语言,fpga开发

    设置名字为filter_3_4M

    

三、matlab进行仿真

    1、产生两个信号2.5MHz和5MHz,然后对其进行混频,注意matlab中混频有两种方法,一种是两个信号相加,另一种是两个信号相乘,这两种混频结果是不同的

    2、加法混频

        

dt=100000000;%采样点数

x=0:1/dt:0.00001;

f1=0.5*10^6;

f2=5*10^6;

s1=sin(2*pi*f1*x);

s2=sin(2*pi*f2*x);

s3=s1+s2;

figure(1);

subplot(3,1,1);

plot(s1);

title("0.5MHz")

subplot(3,1,2);

plot(s2);

title("5MHz")

subplot(3,1,3);

plot(s3);

title("加法混频信号")

Hd=filter_3_4M;

s4=filter(Hd,s3);

figure(2);

title("信号对比")

plot(x,s1,'g');%将0.5MHz与滤波后信号对比

hold on;

plot(x,s3,'y');

plot(x,s4,'r');

legend("0.5MHz","加法混频信号","滤波后信号")

结果图

vivado和matlab关联,FPGA,matlab,开发语言,fpga开发

vivado和matlab关联,FPGA,matlab,开发语言,fpga开发

3、乘法混频

    乘法混频输入信号为0.5MHz和5MHz,采用积化和差转换后的输出信号有两个输出频率,分别为4.5MHz和5.5MHz,由于之前设置的截止频率为4MHz,故理论上是不会产生滤波信号,接下来进行仿真验证

dt=100000000;%采样点数

x=0:1/dt:0.00001;

f1=0.5*10^6;

f2=5*10^6;

s1=sin(2*pi*f1*x);

s2=sin(2*pi*f2*x);

s3=s1.*s2;

figure(1);

subplot(3,1,1);

plot(s1);

title("0.5MHz")

subplot(3,1,2);

plot(s2);

title("5MHz")

subplot(3,1,3);

plot(s3);

title("乘法混频信号")

Hd=filter_3_4M;

s4=filter(Hd,s3);

figure(2);

title("信号对比")

plot(x,s1,'g');%将0.5MHz与滤波后信号对比

hold on;

plot(x,s3,'y');

plot(x,s4,'r');

legend("0.5MHz","乘法混频信号","滤波后信号")

结果图

vivado和matlab关联,FPGA,matlab,开发语言,fpga开发

采用2.5MHz和5MHz信号进行乘法混频,可知混频后的频率为2.5MHz和7.5MHz,故经过滤波后应可获得2.5MHz的滤波结果

dt=100000000;%采样点数

x=0:1/dt:0.00001;

f1=2.5*10^6;

f2=5*10^6;

s1=sin(2*pi*f1*x);

s2=sin(2*pi*f2*x);

s3=s1.*s2;

figure(1);

subplot(3,1,1);

plot(s1);

title("2.5MHz")

subplot(3,1,2);

plot(s2);

title("5MHz")

subplot(3,1,3);

plot(s3);

title("乘法混频信号")

Hd=filter_3_4M;

s4=filter(Hd,s3);

figure(2);

title("信号对比")

plot(x,s1,'g');%将2.5MHz与滤波后信号对比

hold on;

plot(x,s3,'y');

plot(x,s4,'r');

legend("2.5MHz","乘法混频信号","滤波后信号")

结果图

vivado和matlab关联,FPGA,matlab,开发语言,fpga开发

vivado和matlab关联,FPGA,matlab,开发语言,fpga开发

四、搭建vivado测试电路

1、产生vivado中filter IP核所需的滤波器参数coe文件

    vivado和matlab关联,FPGA,matlab,开发语言,fpga开发

    点击上面方框,按照下面进行配置

        vivado和matlab关联,FPGA,matlab,开发语言,fpga开发

        vivado和matlab关联,FPGA,matlab,开发语言,fpga开发

    生成.coe文件

2、搭建电路

    本电路采用2.5MHz和5MHz进行乘法混频,整体电路如下

    vivado和matlab关联,FPGA,matlab,开发语言,fpga开发

3、IP核作用

    DDS_compiler:产生测试所需正弦波

    Multiolier:乘法器,用于将2.5MHz和5MHz进行混频

    Utility Vector Logic:与门,两个信号输出同时有效时fir滤波器输入有效

    RAM-based Shift Register:延时作用,乘法器计算需要1个时钟周期,为保持时序所用

    Slice:截取信号,DDS产生的15位数据中低八位和高八位分别表示正余弦波,只用其中一个即可

    FIR Compiler:滤波器IP

4、说明:由于IP核配置页面较多,此处不再一一截图,vivado工程文档链接为: 阿里云盘分享https://www.aliyundrive.com/s/Qm44pYvFNvx

五、vivado仿真

    由于block design已经完成信号的输入和输出,故此仿真只需要添加时钟信号即可

    

module filter_tb();

   reg clk;

   wire [15:0] data_2_5m;

   wire [15:0] data_5m;

   wire [39:0] tdata;

   wire [15:0] tdata_pre;

   wire tdata_valid;

   wire [7:0] wave_5m;

   wire [7:0] wave_2_5m;



   filter_wrapper filter_wrapper_inst(

    .clk_100MHz(clk),

    .data_2_5m(data_2_5m),

    .data_5m(data_5m),

    .tdata(tdata),

    .tdata_pre(tdata_pre),

    .tdata_valid(tdata_valid),

    .wave_5m(wave_5m),

    .wave_2_5m(wave_2_5m)

   );



   initial begin

   clk=1'b0;

   end

   always #1  clk=~clk;

endmodule

仿真结果:

    vivado和matlab关联,FPGA,matlab,开发语言,fpga开发

附:

vivado和matlab关联,FPGA,matlab,开发语言,fpga开发

vivado和matlab关联,FPGA,matlab,开发语言,fpga开发

       文章来源地址https://www.toymoban.com/news/detail-703717.html

到了这里,关于滤波器之matlab与vivado的联合仿真的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CIC滤波器的matlab仿真与实现

    在数字信号处理中,由于后级硬件如FPGA的处理速度无法跟上前级ADC的采样速度,因此需要对ADC的采样数据进行降速处理,也就是对采样数据进行 抽取 ,简单的抽取描述就是对其中连续几个点取一个点进行处理。 由抽取理论知识可以知道,抽取相当于对时域做压缩,相应的就

    2024年02月09日
    浏览(32)
  • 信号处理之FIR数字滤波器(Matlab仿真)

            数字滤波器的作用是滤除不感兴趣的信号,留下想要的信号。数字滤波器可分为无限脉冲响应(IIR)数字滤波器、有限脉冲响应(FIR)数字滤波器两种,两者各有优缺点,其中FIR数字滤波器因其具有良好的线性相位特性受到广泛应用,线性相位是指信号中各频率成分的相对

    2024年02月03日
    浏览(50)
  • FIR内插滤波器的FPGA实现(一)-matlab实现

    FIR内插滤波器是一种基本的插值方法,主要有两个步骤: 1)在输入的每一个初始采样中间插入L个零点; 2)插零后的数据经过低通滤波器。 运行结果如图(时域、频域): 我们的目标是把采样频率提升五十倍。 得到的频域图: 可以看出内插零点在频域会实现频谱扩展,因此

    2024年02月03日
    浏览(54)
  • 基于正交滤波器组的语音DPCM编解码算法matlab仿真

    目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程           matlab2022a        在语音信号处理中,一种常见的编解码技术是差分脉冲编码调制(DPCM)。DPCM是一种无损或有损压缩技术,通过利用信号中的冗余性来减少数据传

    2024年02月15日
    浏览(48)
  • 数字信号处理-10-并行FIR滤波器MATLAB与FPGA实现

    本文介绍了设计滤波器的FPGA实现步骤,并结合杜勇老师的书籍中的并行FIR滤波器部分进行一步步实现硬件设计,对书中的架构做了复现以及解读,并进行了仿真验证。 FIR滤波器的结构形式时,介绍了直接型、级联型、频率取样型和快速卷积型4种。在FPGA实现时,最常用的是最

    2023年04月09日
    浏览(48)
  • 【MATLAB源码-第108期】基于matlab的OFDM-OQAM系统仿真,包含PHYDYAS滤波器模块和PNN结构,输出误码率曲线。

    OFDM/OQAM(正交频分复用/正交四分之一幅度调制)是一种高效的无线通信系统,采用PHYDYAS(物理层动态接入)滤波器来优化性能。这种系统的设计主要目的是提高频谱效率、减少干扰,特别适用于多径衰落环境。下面将更详细地描述其主要组成部分: 1. **OFDM/OQAM技术简介**:

    2024年01月18日
    浏览(38)
  • FPGA设计FIR滤波器低通滤波器,代码及视频

    名称:FIR滤波器低通滤波器 软件:Quartus 语言:Verilog/VHDL 本资源含有verilog及VHDL两种语言设计的工程,每个工程均可实现以下FIR滤波器的功能。 代码功能: 设计一个8阶FIR滤波器(低通滤波器),要求截止频率为20KHz,使用线性相位结构。 参数设计方法: 使用matlab软件设计滤

    2024年02月08日
    浏览(50)
  • 基于FPGA的FIR滤波器的实现(5)— 并行结构FIR滤波器的FPGA代码实现

    并行结构,并行实现滤波器的累加运算,即并行将具有对称系数的输入数据进行相加,而后采用多个乘法器并行实现系数与数据的乘法运算,最后将所有乘积结果相加输出。这种结构具有最高的运行速度,因不需要累加运算,因此系数时钟频率可以与数据输出时钟频率保持一

    2024年02月03日
    浏览(53)
  • 二阶高通有源滤波器设计与仿真测试

       二阶高通有源滤波器的电路如图1所示,阻容网络C 1 、R 1 和C 2 、R 2 组成二阶高通滤波器,R f 和R 3 确定电路放大倍数。 图1 压控电压源法二阶高通有源滤波器原理图    二阶高通有源滤波器的设计步骤与低通的设计步骤相同,即根据设计技术要求选择适当的f0、ξ及K

    2024年02月12日
    浏览(36)
  • (三)FPGA实现滤波器

     DDS:直接数字式频率合成器,可以根据需求产生不同频率和相位的正弦波数据,通常用于通信系统中的调制解调。 配置过程: 【IP CATALOG】à【modulation DDS complier】 Configuration Options Phase generator and SIN COS LUT 相位和查找表(本实验中选这个) Phase Generator only 只产生相位 SIN CO

    2024年02月16日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包