分數倍取樣率轉換

2021-09-22 20:04:24 字數 1741 閱讀 5565

分數倍取樣率轉換:

在工程中,輸入取樣率和輸出取樣率不都是整數倍關係,常常出現分數倍取樣率的轉換(如音訊取樣率44.1khz轉換到48khz等)。分數倍取樣率轉換的實現方法有很多,常見的有多相結構、拉格朗日插值(farrow結構)、三次樣條插值等。

分數倍取樣率轉換多相結構:

在分數內插過程中,常用p表示濾波器的內插因子,q表示抽取因子,

因此,輸出取樣率=輸入取樣率*p/q;

p>q則是內插,p法羅濾波器是一種多相濾波器,其的核心思想就是對原型濾波器係數進行重組。

假設,原型濾波器的係數為a,...t,插值因子p=5,抽取因子q=3。輸出濾波器相位步進為q。

lmmax = max(l,m); % 抽取因子或插值因子

fc = 1/2/lmmax; % 截止頻率

h=firls(n-1,[0 2*fc 2*fc 1],[1 1 0 0].*kaiser(n,beta)'; % ls方式計算濾波器係數,kaiser為窗函式,可按情況選擇

拉格朗日插值的法羅結構:法羅結構是拉格朗日插值的一種高效實現。方法就是將

% 法羅插值的演算法

% y=[uk^3 uk^2 uk^1 1]*(c*[x(k) x(k-1) x(k-1) x(k-3)]')

% 其中uk為分數間隔,c為固定係數,x為輸入取樣,非常適合用fpga實現。

% 可用於任意倍率(插值或抽取)的取樣率變換。

t=(0:999)/48e3;

x=sin(2*pi*1e3*t); % 產生48khz取樣率,1khz的正弦波。

% 係數

v3=[-1/6 1/2 -1/2 1/6];

v2=[1/2 -1 1-2 0];

v1=[-1/3 -1/2 1 -1/6];

v0=[0 1 0 0];

c = [v3;v2;v1;v0];

l=7; % 插值因子

m=3; % 抽取因子

k=1;

xbuf=zeros(4,1);

pha=0;

for i=1:length(x)

xbuf=[x(i);xbuf(1:end-1)]; % fpga實現時採用移位暫存器

xf=c*xbuf; % 移位暫存器的資料分別用v3,v2,v1,v0進行濾波

pha = pha + l;

while pha >= m

uk = pha/l; % 計算輸出取樣點的相對位置

y(k)=xf(1)*uk^3+xf(2)*uk^2+xf(3)*uk+xf(4); % fpga實現時採用乘法器流水

pha = pha - m; % 更新輸出取樣點後的相位

k = k + 1; % 更新輸出索引

endendy(1:4)=;

t1=(0:length(y)-1)/(48e3*l/m);

plot(t,x,'--*',t1,y,'--o');

後記:由於該結構非常適合fpga實現,只需要在資料輸入加一級快取(fifo/ram),隨後根據相位選擇進行濾波即可。

matlab的**如下:

音訊重取樣的verilog**:

pcm 取樣率轉換 廣播百科 取樣率

第 459 期 取樣率,也稱為取樣速度或者取樣頻率,定義了每秒從連續訊號中提取並組成離散訊號的取樣個數,它用赫茲 hz 來表示。取樣頻率的倒數是取樣週期或者叫作取樣時間,它是取樣之間的時間間隔。通俗的講取樣頻率是指計算機每秒鐘採集多少個訊號樣本。連續訊號在時間 或空間 上以某種方式變化著,而取樣過程...

關於音訊取樣率

於網上收集整理 音訊取樣率是指錄音裝置在一秒鐘內對聲音頻號的取樣次數,取樣頻率越高聲音的還原就越真實越自然。在當今的主流採集卡上,取樣頻率一般共分為22.05khz 44.1khz 48khz三個等級,22.05khz只能達到fm廣播的聲音品質,44.1khz則是理論上的cd音質界限,48khz則更...

音訊取樣位數,取樣率,位元率

一 關於數字音訊 數字音訊是指使用數字編碼的方式也就是使用0和1來記錄音訊資訊,它是相對於模擬音訊來說的。在cd光碟和計算機技術未出現之前都是模擬音訊 如錄音帶 其中數字 模擬轉換器簡稱 dac 模擬 數字轉換器簡稱 adc 1 數字音訊裡幾個重要的引數 1 取樣位數 可以理解數字音訊裝置處理聲音的...