怎麼用MATLAB產生FPGA所需的hamming窗係數

需求函數

在FPGA處理中若是須要對待處理數據加窗,則須要窗係數存儲在ROM中以供使用。手殘matlab黨固然還沒搞到極致,不過夠用了。excel


前言orm

加窗有啥用呢,咱們知道:時域的乘積就是頻域的卷積。blog

而直接截取的一段數據,若是直接求解fft,你發現有效頻點旁瓣賊拉高,對信號的後處理是不利的。it

那麼加個窗就會使得旁瓣被抑制不少,使得表現的沒那麼椎間盤突出。但很差的一面,會使得主瓣會被展寬。畢竟根據能量守恆定律,旁瓣矮了能量減少,主瓣就得身寬體胖吸取多餘能量。io

因此選擇正確的窗函數也是很重要的。form

MATLAB窗函數說明變量

 

 

流程im

好比加個hamming窗,8192點,16bit放大,最終係數18bit位寬。d3

ceil函數說明:對帶小數部分的數進行取整操做。

(1)在MATLAB中鍵入以下代碼:

format long g; %不用科學計數顯示

N = 8192; %8192點

w = hamming(N); %窗

x = ceil(w*65536); %窗數據放大

plot(x);

(2)在MATLAB中打開變量

 

 

(3)選中列,複製數據便可。

 

 

(4)修改成最終的xilinx coe文件。

 

怎麼修改成最終的xilinx coe文件?

(1)有以下數據,假設有幾千個:

 

 

(2)須要轉成COE文件格式,則須要在數據起始添加,10表示十進制:

memory_initialization_radix=10;

memory_initialization_vector=

每一個數據結尾是逗號,最後一個數據結尾是分號。

exp:

 

 

(3)則須要對文本數據添加逗號,方便修改coe文件。可以使用excel對所有數據添加逗號操做。

導入文本數據到A,選中B1,而後在輸入框中輸入:=A:A&","

 

而後複製B1單元格,在選擇單元格中輸入須要框選的單元格:

 

而後按粘貼便可。

(4)複製帶逗號的數據到coe文件中,修改最後一個數據的結尾爲分號便可。

以上。

相關文章
相關標籤/搜索