日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

fpga数据位宽截取_FPGA信号截位策略研究

發布時間:2023/11/27 生活经验 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 fpga数据位宽截取_FPGA信号截位策略研究 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在FPGA中,隨著信號處理的層次加深,對信號進行乘、累加、濾波等運算后,可能輸入時僅為8位位寬的信號會擴展成幾十位位寬,位寬越寬,占用的硬件資源就越多,但位寬超過一定范圍后,位寬的增寬并不會對處理精度帶來顯著的改善,這時就需要對信號進行截位。寫過FPGA HDL代碼的童鞋都應該知道,截位是最為經常的一種操作。

一般來說,截位只需截掉低幾位即可,這是最簡單的做法;對于無符號數來說,這樣做也沒有問題;當然也有四舍五入的截位方法,就是給次低位加一后再進行截位。

下面討論三種截位截略:1)直接截位;2)負數截位后加1;3)負數取絕對值后再截位。在matlab中模擬FPGA截位過程,運行如下一段程序,得到四幅圖。

a=10000*randn(1,1000);

%% 截位方式一:直接截位

b=floor(a/2^5); %截去低5位

afft=fft(a);

bfft=fft(b);

figure; %觀察原始信號與截位后信號的頻譜

subplot(2,1,1);plot(abs(afft)/max(abs(afft)));grid;title('原始信號');

subplot(2,1,2);plot(abs(bfft)/max(abs(bfft)));grid;title('截位信號');

b=floor(a/2^12); %截去低12位

afft=fft(a);bfft=fft(b);

figure; %觀察原始信號與截位后信號的頻譜

subplot(2,1,1);plot(abs(afft)/max(abs(afft)));grid;title('原始信號');

subplot(2,1,2);plot(abs(bfft)/max(abs(bfft)));grid;title('截位信號');

%% 截位方式二:負數截位后加1

b=zeros(1,length(a));

for ii=1:length(a)

if a(ii)<0

b(ii)=floor(a(ii)/2^12)+1; %截去低12位后加1

else

b(ii)=floor(a(ii)/2^12); %直接截位

end

end

afft=fft(a);bfft=fft(b);

figure; %觀察原始信號與截位后信號的頻譜

subplot(2,1,1);plot(abs(afft)/max(abs(afft)));grid;title('原始信號');

subplot(2,1,2);plot(abs(bfft)/max(abs(bfft)));grid;title('截位信號');

%% 截位方式三:負數取絕對值后再截位

b=zeros(1,length(a));

for ii=1:length(a)

if a(ii)<0

b(ii)=-floor(-a(ii)/2^12); %負數取絕對值后截去低12位再變回原來符號

else

b(ii)=floor(a(ii)/2^12); %直接截位

end

end

afft=fft(a);bfft=fft(b);

figure; %觀察原始信號與截位后信號的頻譜

subplot(2,1,1);plot(abs(afft)/max(abs(afft)));grid;title('原始信號');

subplot(2,1,2);plot(abs(bfft)/max(abs(bfft)));grid;title('截位信號');

圖一:直接截去低五位

圖二:直接截去低12位

圖三:截去低12位且負數截位后加一

圖四:截去低12位且負數取絕對值后再截位,截完位再變回原先的符號

由圖三和圖四可以看出,采用第二種和第三種截位策略后,直流分量消失。

其實第三種截位策略是達到了這樣一種效果:一對相反數在截位后仍然是一對相反數。這種效果在直接截位時對于奇數來說是達不到的。

其實直接截位之所以出現直流分量可以這樣直觀的來認識:從matlab程序中也可以看出,對于FPGA信號截位來說,實際上就是向下取整;對于有符號數來講,正數向下取整在數軸上是向原點零靠近,然后負數向下取整則是遠離原點零了,這是因為負數以補碼形式表示,它的補碼所對應的無符號數經截位后向原點零靠近了,換算成有符號的負數時,則是遠離原點零了。因此截位實際造成的效果是信號整體向負無窮方向平移了,即對于一個白噪聲序列來講,原本均值為零,截位后均值變為了負數。

總結

以上是生活随笔為你收集整理的fpga数据位宽截取_FPGA信号截位策略研究的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。