当前位置: 首页 > article >正文

xilinx FPGA 平台实现数字信号 -- 低通滤波

xilinx FPGA 平台实现低通滤波效果:

  1. 生成一个10KHZ 叠加上100KHZ的信号,定义成data_all
  2. 使用1MHZ 采样频率,采取data_all 信号1024个点
  3. 试用低通滤波器 滤除100KHZ的信号,恢复出10KHZ信号

以下是matlab中实现:

clc;
clear all;

FS = 1000000; 
N = 1024;
n = 1:1024;
t = 1/FS * n;

A1=1;
P1=0;
F1=10000;

A2=1;
P2=0;
F2=100000;

data1 = A1 * sin(2 *pi * t * F1) ;
data2 = A2 * sin(2 *pi * t * F2) ;

data_all = data1 + data2;

fix_data = fix(data_all/2 * (2^15-1) + (2^15-1));

%%%%%%%%%%%%%%%%%%%%%%生成dat文件%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fid = fopen("fix_data.dat",'w');

for i=1:N 
    fprintf(fid,"%x\n",fix_data(i));
end

fclose(fid);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

subplot (511);
plot(data1);

subplot (512);
plot(data2);

subplot (513);
plot(data_all);

a = 50000 * 2 /FS;
b = fir1(50,a,'low');
subplot (514);
stem(b);

data_f = filter(b,1,data_all);
subplot (515);
plot(data_f);

在这里插入图片描述
在FPGA中实现fir低通滤波的效果:
1.matlab 产生的 data_all 信号的 dat文件
2.FPGA中的RAM 存储 这个dat文件数据
3.配置 fir IP 核,加载 matlab 产生的 滤波系数
a.matlab 输入 fdatool 出现 滤波器 设置窗口,如下图
b. 设置好,可以看到下图在50k左边几乎是没有衰减的,右边频率经过 -40db的衰减。100倍的衰减,20db代表10倍衰减。
c. 送入 fir IP 数据都是 整数,没有小数,所以需要设置 下图参数为定点数,小数设置为0
d.生成 xilinx 平台需要的 coe 文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.仿真
使用vivado 仿真效果:上图是data_all 信号
下图是滤波后波形:
1.发现相位和data_all信号有偏差,相位是随机的,没有办法调整;
2.前50周期空窗期,没有意义,与滤波器阶数有关;
3. 需要注意 fir IP 会对输入信号增益放大到一定倍数,所以最后IP核出来的数据需要缩小相应倍数
在这里插入图片描述

在这里插入图片描述


http://www.kler.cn/a/505390.html

相关文章:

  • C++ 文字识别OCR
  • Python文件操作中编码解码问题
  • 为深度学习创建PyTorch张量 - 最佳选项
  • 汽车免拆诊断案例 | 2007 款法拉利 599 GTB 车发动机故障灯异常点亮
  • 怎样利用海外云手机进行引流?
  • SpringBoot之LazyInitializationBeanFactoryPostProcessor类源码学习
  • word添加参考文献并批量上标
  • ASP.NET Core - IStartupFilter 与 IHostingStartup
  • 【网络 MAC 学习专栏 -- 如何理解 PHY 的 Link Up】
  • 《数据思维》之数据可视化_读书笔记
  • Mysql 之 阻塞与死锁详解
  • 2025 年将是统一网络安全的一年
  • 港科夜闻 | 香港科大与微软亚洲研究院签署战略合作备忘录,推动医学健康教育及科研协作...
  • 解锁企业数据管理统一身份认证难题,EasyMR助力企业敏捷提效
  • Asp.net 如何使用任务调度
  • Elasticsearch搜索引擎(二)
  • 数据结构《MapSet哈希表》
  • 68_Redis数据结构-QuickList
  • 【make】makefile 函数全解
  • 迅为RK3568开发板篇OpenHarmony配置HDF驱动控制LED-新增 topeet子系统-编写 bundle.json文件
  • 初学stm32 --- SPI驱动25Q128 NOR Flash
  • day08_Kafka
  • C++实现设计模式---状态模式 (State)
  • MySQL程序之:指定程序选项
  • Kotlin 协程基础十 —— 协作、互斥锁与共享变量
  • python 爬虫学习