基於Δ-Σ模數轉換器的梳狀濾波器的設計與matlab模擬
目錄
一、理論基礎
Δ-Σ模數轉換器是一種低速,高精度的過取樣模數轉換器廣泛的應用於訊號採集和處理、數字通訊、自動檢測、自動控制和多媒體技術等領域。作為Δ-Σ模數轉換器首級的梳狀濾波器的設計就顯得非常重要,濾波器的設計直接決定了整個晶片的面積和功耗卻是由濾波器部分來決定的。
Δ-Σ數模轉換器是由數字插值濾波器、數字Sigma-Delta調製器和模擬低通濾波器組成。數字插值濾波器是將奈奎斯特取樣訊號轉換為過取樣訊號,數字Sigma-Delta調製器是將過取樣訊號進行噪聲整形,而模擬低通濾波器是用來濾除基帶以外的訊號噪聲並將調製器輸出訊號重構為連續時間域的模擬訊號。關於Δ-Σ模數、數模轉換器的基本原理與結構將在第二章節中詳細介紹。其基本結果如下所示:
Δ-Σ模數轉換器是一種高解析度的資料轉換器,目前正廣泛應用於高保真數字處理系統中,作為Δ-Σ模數轉換器首級的梳狀濾波器的設計就顯得非常重要。高速A/D取樣得到中頻數字訊號,將其所需的頻帶下變到基帶,它一般位於訊號處理鏈的前端A/D,主要有數字振盪器(VCO)、數字乘法器、數字濾波器三部分組成。
Σ-Δ調製器的基本原理可以概括為利用過取樣降低噪聲功率在訊號頻帶內的分佈,在此基礎上再利用噪聲整形進一步抑制帶內噪聲,從而提高帶內訊號的信噪比。Σ-Δ調製器的基本結構如圖2。在假設量化噪聲e(n)是白噪聲的情況下,輸入訊號x(n)和量化噪聲是e(n)是量化器的兩個相互無關的輸入,因此量化器的輸出可等效為輸入訊號和量化噪聲的疊加。
假設用N級CIC濾波器來代替hn,每一級的濾波器係數長度為R,每一級的差分延遲為M,抽取數為R,那麼可以得到CIC抽取濾波器結構圖:
N級CIC濾波器在功能上相當於N級完全相同的FIR濾波器的級聯。如果按傳統的FIR濾波器方式實現,那麼N級FIR濾波器的每一級都需要RM個儲存單元和一個累加器,但如果用CIC方式實現,那麼N級CIC濾波器的每一級只需要M個儲存單元。
二、核心程式
clc;
clear;
close all;
%CIC濾波器的引數
R = 32; %抽取因子
M = 1; %延遲
N = 5; %CIC階數
B = 8; %有限字長
Fs = 10.24e6; %訊號的頻率
Fc = 20e3; %訊號頻寬
%FIR
L = 30; %濾波器的階數
Fo = R*Fc/Fs;
%% FIR
p = 2e3;
s = 0.25/p;
fp = [0:s:Fo];
fs = (Fo+s):s:0.5;
f = [fp fs]*2;
Mp = ones(1,length(fp));
Mp(2:end) = abs( M*R*sin(pi*fp(2:end)/R)./sin(pi*M*fp(2:end))).^N;
Mf = [Mp zeros(1,length(fs))];
f(end) = 1;
h = fir2(L,f,Mf);
h = h/norm(h);
hz = floor(h*power(2,B));
%% CIC
hrec = ones(1,R*M);
tmph = hrec;
for k=1:N-1
tmph = conv(hrec, tmph);
end;
hcic = tmph;
hcic=hcic/norm(hcic);
%%
hzp = upsample(hz,R);
hp = upsample(h, R);
ht = conv(hcic, hp);
hzt = conv(hcic, hzp);
[Hcic, wt] = freqz(hcic, 1, 4096, Fs);
[Hciccomp, wt] = freqz(hp, 1, 4096, Fs);
[Ht, wt] = freqz(ht, 1, 4096, Fs);
[Hzt, wt] = freqz(hzt, 1, 4096, Fs);
Mcic = 20*log10(abs(Hcic)/max(abs(Hcic)));
Mciccomp = 20*log10(abs(Hciccomp)/max(abs(Hciccomp)));
Mt = 20*log10(abs(Ht)/max(abs(Ht)));
Mzt = 20*log10(abs(Hzt)/max(abs(Hzt)));
%%
figure;
plot(wt, Mcic);
legend('CIC');
grid
xlabel('頻率');
ylabel('幅度');
figure
plot(wt, Mt,wt, Mzt);
legend('Total Response (Floating Point)','Total Response Fixed Point')
grid
xlabel('頻率');
ylabel('幅度');
title('浮點模擬與定點模擬');
三、測試結果
測試的輸入訊號頻率為10.24MHz,基帶訊號頻寬為20KHz。我們將這個輸入訊號作為測試訊號,對濾波器進行測試。通過CIC濾波之後,其模擬結果如下所示:
下面考慮梳狀濾波器的三個引數變數進行並結合實際的工作環境進行綜合模擬,在實際的ADC中,往往會在CIC濾波器之後加入一個FIR濾波器作為補償濾波器。
通過模擬,可以看到其模擬結果如下所示:
當資料字長為8的時候,浮點模擬結果和定點模擬結果具有較大的誤差,而引數選擇為16和32的時候,兩者之間的誤差較小。當考慮硬體資源的時候,我們選擇字長為16。A25-03。