• 怎么用MATLAB产生FPGA所需的hamming窗系数


    需求

    在FPGA处理中如果需要对待处理数据加窗,则需要窗系数存储在ROM中以供使用。


    前言

    加窗有啥用呢,我们知道:时域的乘积就是频域的卷积。

    而直接截取的一段数据,如果直接求解fft,你发现有效频点旁瓣贼拉高,对信号的后处理是不利的。

    那么加个窗就会使得旁瓣被抑制很多,使得表现的没那么椎间盘突出。但不好的一面,会使得主瓣会被展宽。毕竟根据能量守恒定律,旁瓣矮了能量减小,主瓣就得身宽体胖吸收多余能量。

    所以选择正确的窗函数也是很重要的。

    MATLAB窗函数说明

     

    流程

    比如加个hamming窗,8192点,16bit放大。

    new方法:直接生成xilinx 所需的coe文件。 ceil函数为取整。

    clc;                                            
    clear all;
    close all;
    
    N = 8192;                                         %窗长度
    M = 2^16-1;                                       %系数放大16bit
    w = hamming(N);                                   %加汉明窗
    x = ceil(w*M);                                    %放大取整
    
    plot(x);
    fp=fopen('Hamming8192.coe','w');                  %open the file
    fprintf(fp,'memory_initialization_radix=10;
    ');  %header
    fprintf(fp,'memory_initialization_vector=
    ');    %header
    fprintf(fp, '%g,
    ', x(1:N-1));                   % (1:n-1) data with ','
    fprintf(fp, '%g;
    ', x(N));                       %the last data with ';'
    fclose(fp);                                       %close the file

    以上。

  • 相关阅读:
    Java—数据库技术
    Java—泛型
    Java—图形处理
    Java—网络技术
    vb.net 分割byte数组的方法SplitBytes
    动态支付宝转账码可指定金额备注无限秒生成的方法
    关于支付宝个人账户免签收款自动备注
    vb.net MakeWParam
    Vb.net MakeLong MAKELPARAM 合并整数代码
    百度图片objURL解密vb.net版
  • 原文地址:https://www.cnblogs.com/kingstacker/p/10644277.html
Copyright © 2020-2023  润新知