升余弦滤波器的FPGA实现

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

目录

升余弦滤波器与无码间串扰(一)
升余弦滤波器与无码间串扰(二)
升余弦滤波器的FPGA实现

一、FIR ip核

成形滤波器采用vivado中的FIR ip核实现。滤波器的系数用matlab产生并转成coe文件。

wire m_axis_data_tvalid;
rcos_fir u_rcos_fir(
    .aclk(fs_clk),                              // input wire aclk
    .s_axis_data_tvalid(chip1_valid),           // input wire s_axis_data_tvalid
    .s_axis_data_tready(),                      // output wire s_axis_data_tready
    .s_axis_data_tdata({{6{chip1[1]}},chip1}),  // input wire [7 : 0] s_axis_data_tdata
    .m_axis_data_tvalid(m_axis_data_tvalid),    // output wire m_axis_data_tvalid
    .m_axis_data_tdata(rcos_out)                // output wire [15 : 0] m_axis_data_tdata
);  

二、FIR滤波器的输入输出

FIR滤波器的输入数据是s_axis_data_tdata,输出数据是m_axis_data_tdata。输入和输出接口均采用AXIS总线,即接口的位数只能是8的倍数位。比如,输入为2位数据时,需要通过符号位扩展,将两位数据扩展为8位再给到FIR ip核的输入。

  • 符号位扩展,即把最高位(符号位)复制,直至所需位数。

三、COE系数

1.coe系数的格式

首先要注意的是,FIR ip核与ROM ip核所需要的coe文件是不同的,它们的不同之处仅在于coe文件的前两行。

  • FIR ip核的coe文件格式要求

根升余弦滤波器的fpga实现,Verilog,fpga开发,matlab



  • ROM ip核的coe文件格式要求
    根升余弦滤波器的fpga实现,Verilog,fpga开发,matlab

2.matlab产生coe文件

注意,matlab生成的滤波器系数是0~1之间的,不能直接导入FIR ip核中,需要先进行系数量化。系数量化可以理解为将所有的小数乘一个整数然后取整,用这些得到的整数来代替原来的小数。文章来源地址https://www.toymoban.com/news/detail-620689.html

  • 系数量化
    若将系数量化为11位,即用11位二进制表示原来的小数,则将小数乘(2^11-1)然后取整。
%% -----------------产生coe文件----------------- %%
clear;clc
load shape_fir.mat
y=shape_fir;

N=11;           % 滤波器系数用11位二进制表示
y=y/max(y);     % 归一化
y=y*(2^N-1);   
y=round(y);

fid=fopen('rcos.coe','w');%打开一个.coe文件
%存放ROM中的.coe文件第一行字符串,16表示16进制,可以改成其他进制
fprintf(fid,'radix=10;\n');
%存放在ROM中的.coe文件第二行字符串
fprintf(fid,'coefdata=\n');
%把前255个数据写入.coe文件中,并用逗号隔开,每行一个数据
fprintf(fid,'%d,\n',y(1:end-1));
%把最后一个数据写入.coe文件中,并用分号结尾
fprintf(fid,'%d;\n',y(end));
fclose(fid);%关闭文件指针

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

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

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

相关文章

  • m基于FPGA的半带滤波器verilog设计,对比普通结构以及乘法器复用结构

    目录 1.算法描述 2.仿真效果预览 3.verilog核心程序 4.完整FPGA         HBF模块由半带滤波器(HBF)和抽取模块组成。该模块的任务是实现2倍抽取进一步降低信号采样速率。由于HBF的冲激响应h(k)除零点外其余偶数点均为零,所以用HBF实现2倍抽取可以节省一半的运算量,对增强软

    2023年04月08日
    浏览(76)
  • (三)FPGA实现滤波器

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

    2024年02月16日
    浏览(37)
  • FPGA实现CIC滤波器

    上一节MATLAB CIC滤波器_小小低头哥的博客-CSDN博客介绍了如何使用MATLAB仿真不同要求的CIC滤波器,并对结果进行了分析。这次使用FPGA分别实现单级、多级CIC滤波器。   单级CIC滤波器的实现非常简单。根据 y ( n ) = ∑ k = 0 M − 1 x ( n − k ) = x ( n ) − x ( n − M ) + ∑ k = 0 M − 1

    2024年02月04日
    浏览(36)
  • 孩子都能学会的FPGA:第十六课——用FPGA实现IIR滤波器滤波

    (原创声明:该文是 作者的原创 ,面向对象是 FPGA入门者 ,后续会有进阶的高级教程。宗旨是 让每个想做FPGA的人轻松入门 , 作者不光让大家知其然,还要让大家知其所以然 !每个工程作者都搭建了全自动化的仿真环境,只需要双击 top_tb.bat 文件就可以完成整个的仿真(前

    2024年01月21日
    浏览(56)
  • 基于FPGA的IIR滤波器的实现

    IIR滤波器原理以及架构在此不做阐述,如何从模拟滤波器到数字滤波器进行设计,可参考 https://blog.csdn.net/k331922164/article/details/117265704?spm=1001.2101.3001.6661.1utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-117265704-blog-123083652.235%5Ev38%5Epc_relevant_anti_t3_based

    2024年02月04日
    浏览(37)
  • 基于FPGA的RC滤波器设计实现

    目录 简介: 传递函数 FPGA代码实现 总结 RC滤波器的特性基本情况介绍 RC一阶低通滤波介绍;RC滤波器电路简单,抗干扰性强,有较好的低频性能,并且选用标准的阻容元件易得,所以在工程测试的领域中最经常用到的滤波器是RC滤波器。 这里我们主要认识和介绍低通滤波器。

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

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

    2024年02月03日
    浏览(53)
  • FIR滤波器的FPGA实现【IP核实现版】

    本文使用FPGA来实现FIR滤波器设计,设计中使用的DDS、乘法器与FIR滤波器均采用IP core进行实现,实现效果是将3MHz和4MHz的正弦信号混频后使用FIR低通滤波器滤除7MHz信号得到1MHz的信号。 首先用两个DDS核生成3MHz以及4MHz的正弦波信号。 注意:此处的dds的命名要和代码中对应,系统

    2024年02月04日
    浏览(50)
  • 利用FPGA实现全串行低通FIR滤波器

    设计一个15阶(长度为16)的具有线性相位低通FIR滤波器,采用布拉克曼窗函数设计,截止频率为500HZ,抽样频率为2000HZ;采用FPGA实现全串行FIR滤波器,系数的量化位数为12比特,输入数据位数为12比特,输出数据位数为29比特,系统时钟为16KHZ 设计思路 :首先采用MATLAB根据要

    2024年02月07日
    浏览(48)
  • 解析使用FPGA逻辑实现FIR滤波器的几种架构

    有限脉冲响应(finite impulse response,FIR)数字滤波器         FIR滤波器的实质就是输入序列与系统脉冲响应的卷积,即:         其中,N为滤波器的阶数,也即抽头数;x(n)为第n个输入序列;h(n)为FIR滤波器的第n级抽头系数。         FIR滤波器基本结构如下:      

    2024年02月08日
    浏览(40)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包