當前位置:首頁 » 編程語言 » c語言高通濾波

c語言高通濾波

發布時間: 2022-12-17 23:35:54

⑴ C# 高通濾波函數

用C# Math轉換
Math.Sqrt 對應二次方,其他的一點一點對吧。

c語言中值濾波問題

1. 是規定做中值濾波的點不含邊緣的點(取決於中值濾波窗口大小)。 2,對圖像邊緣部分的信息進行鏡像處理。

⑶ 只是用簡單的C語言,能實現高斯濾波嗎

可以的。
int*** SmoothImage(int ***XImage ,int width, int height, int channel)
{
double sigma = 1.85; //(n/2 -1)*0.3 +0.8 { n = 9 ,no. of elements}
double conv[3][3];
double hg = 0;
//Convolution kernel
for(i=0; i<3;i++)
{
for(j=0;j<3;j++)
{
int u=i-1; //subtract from centre element index in 3*3 (1,1)
int v=j-1;
conv[i][j] =exp ( - ((u*u) + (v*v)) / (2*sigma*sigma) );
hg += conv[i][j];
}
}
for(int i=0; i<3;i++)
{
for(int j=0;j<3;j++)
{
conv[i][j] = conv[i][j] / hg;
}
}
int*** sXImage = 0;
sXImage = CreateImageMatrix( sXImage , width , height , channel );// allocating a 3d array
//Assigning weights
for(int i =0; i < height ; i++)
{
for(int j =0; j < width ; j++)
{
for(int k =0; k < 3 ; k++)
{
double val = 0;
double valw =0;
if(j-1 > 0 && i-1 > 0)
{
val += conv[0][0] * XImage[i-1][j-1][k];
valw += conv[0][0];
}
if(i-1 > 0 )
{
val += conv[0][1] * XImage[i-1][j][k];
valw += conv[0][1];
}
if(i-1 > 0 && j+1 < width)
{
val += conv[0][2] * XImage[i-1][j+1][k];
valw += conv[0][2];
}

if(j-1 > 0 )
{
val += conv[1][0] * XImage[i][j-1][k];
valw += conv[1][0];
}

val += conv[1][1] * XImage[i][j][k];
valw += conv[1][1];
if(j+1 < width)
{
val += conv[1][2] * XImage[i][j+1][k];
valw += conv[1][2];
}

if(j-1 > 0 && i+1 < height)
{
val += conv[2][0] * XImage[i+1][j-1][k];
valw += conv[2][0];
}
if(i+1 < height)
{
val += conv[2][1] * XImage[i+1][j][k];
valw += conv[2][1];
}
if(j+1 < width && i+1 < height)
{
val += conv[2][2] * XImage[i+1][j+1][k];
valw += conv[2][2];
}

sXImage[i][j][k] = val / valw;

}
}
}

return( sXImage);

}

⑷ 求:一個關於FIR帶通濾波器的C語言設計程序 代碼

這兄弟可以用matlab做嗎?如果可以我給你寫代碼,很榮幸為您解答難題,竭誠為您服務,祝您開心,生活加油~~~

⑸ 如何利用C語言編寫二階高通濾波器,跪求高手幫助

數字濾波器而已~~搞清原理就簡單啦~~~定義個數組,或者把濾波器參數也定義在數組里方便修改,來一個新數據移位一下就行了

⑹ c語言中butte函數是什麼意思

C語言沒有這個函數
MATLAB中有這個函數

說明
巴特沃斯濾波器設計
語法
[z,p,k]=butter(n,Wn)
[z,p,k] = butter(n,Wn,'ftype')
[b,a]=butter(n,Wn)
[b,a]=butter(n,Wn,'ftype')
[A,B,C,D]=butter(n,Wn)
[A,B,C,D] = butter(n,Wn,'ftype')
[z,p,k]=butter(n,Wn,'s')
[z,p,k] = butter(n,Wn,'ftype','s')
[b,a]=butter(n,Wn,'s')
[b,a]=butter(n,Wn,'ftype','s')
[A,B,C,D]=butter(n,Wn,'s')
[A,B,C,D] = butter(n,Wn,'ftype','s')

描述
butter 用來設計低通、帶通、高通、和帶阻數字和模擬的巴特沃斯濾波器。巴特沃斯濾波器的特徵是通帶內幅度響應最大平坦,且整體上是單調的。
巴特沃斯濾波器犧牲了在通帶和阻帶內的單調衰減陡度。除非需要巴特沃斯濾波器的平滑性,橢圓或切比雪夫濾波器可以用更小的濾波器階數獲得更陡峭的衰減特性。

數字域
[z,p,k] = butter(n,Wn) 設計一個階數為n,歸一化截止頻率為Wn的低通數字巴特沃斯濾波器。此函數用n列的向量z和p返回零點和極點,以及用標量k返回增益。
[z,p,k] = butter(n,Wn,'ftype') 設計一個高通、低通或帶阻濾波器,字元串'ftype'取值是:
'high' 用於設計歸一化截止頻率為Wn的高通數字濾波器
'low' 用於設計歸一化截止頻率為Wn的低通數字濾波器
'stop' 用於設計階數為2*n的帶阻數字濾波器,Wn應該是有兩個元素的向量Wn=[w1 w2]。阻帶是w1 < ω <w2.
截止頻率 是幅度響應為處的的頻率。對巴特沃斯濾波器,歸一化截止頻率Wn必須是介於0和1之間的數,這里的1對應於尼奎斯特頻率,即每秒π弧度(π rad/s)。
如果Wn是含有兩個元素的向量,Wn=[w1 w2],butter 返回階數為 2*n的數字帶通濾波器,通頻帶為w1 < ω <w2.
通過返回不同數量的輸出參數,butter 直接地得到其它的濾波器實現。要獲得傳輸函數形式,使用如下所示的兩個輸出參數。

注意 參考下面的限制 了解關於影響形成傳輸函數的數值問題。
[b,a] = butter(n,Wn) 設計一個階為n,歸一化截止頻率為Wn的數字低通巴特沃斯濾波器。它返回濾波器系數在長度為n+1的行向量b和a中,這兩個向量包含z的降冪系數。

[b,a] = butter(n,Wn,'ftype') 設計一個高通、低通或帶阻濾波器,字元串'ftype' 是上面描述的'high'、'low'、或 'stop'。
要獲得狀態空間形式,使用下面所示的4個輸出參數:
[A,B,C,D] = butter(n,Wn) 或
[A,B,C,D] = butter(n,Wn,'ftype') 其中 A、 B,、C,、和D 是

並且u是輸入, x是狀態向量, y 是輸出。

模擬域
[z,p,k] = butter(n,Wn,'s') 設計一個階n,截止角頻率為Wn rad/s的模擬低通巴特沃斯濾波器。它返回零點和極點在長n或2*n的列向量z和p中,標量k返回增益。butter的截止角頻率Wn必須大於0 rad/s。
如果Wn是有兩個元素w1<w2的向量, butter(n,Wn,'s') 返回階 2*n 帶通模擬濾波器,其通帶是w1 < ω < w2。
[z,p,k] = butter(n,Wn,'ftype','s') 通過使用上面描述的ftype 值可以設計一個高通、低通或帶阻濾波器。
只要返回不同數量的輸出參數,butter 可以直接地獲得其它的模擬濾波器實現。要獲得傳輸函數形式,使用如下所示的兩個輸出參數:
[b,a] = butter(n,Wn,'s') 設計一個階n、截止角頻率為Wn rad/s的模擬低通巴特沃斯濾波器。它返回濾波器的系數在長n+1的行向量b和a中,這兩個向量包含下面這個傳輸函數中s的降冪系數:

[b,a] = butter(n,Wn,'ftype','s') 通過設置上面描述的ftype 值,可以設計一個高通、低通或帶阻濾波器。
要獲得狀態空間形式,使用下面的四個參數:
[A,B,C,D] = butter(n,Wn,'s') 或
[A,B,C,D] = butter(n,Wn,'ftype','s') 其中A、 B、 C、和D 是

並且u 作為輸入, x 是狀態向量, y 是輸出。
舉例
高通濾波器
對於1000Hz的采樣,設計一個9階高通巴特沃斯濾波器,截止頻率300Hz,相應的歸一化值為0.6:
[z,p,k] = butter(9,300/500,'high');
[sos,g] = zp2sos(z,p,k); % 轉換為二次分式表示形式
Hd = dfilt.df2tsos(sos,g); % 創建dfilt對象
h = fvtool(Hd); % 繪制幅度響應
set(h,'Analysis','freq') % 顯示頻率響應

⑺ 跪求大師幫忙,用C語言編寫這個式子,懸賞100分哦

#define pi 3.14159265358979384626
double h(double n)
{
double x;
x=1.0/(pi*(n-64));
x*=sin(pi*(n-64))-sin(3*pi/4*(n-64));
x*=0.54-0.46*cos(2*pi*n/128);
x*=r128(n);
return x;
}
double r128(double n)
{
double x;
/*函數R128的公式你沒給出,你自己完成吧*/
return x;
}

⑻ 如何用C語言來實現數字濾波器

用C語言實現,希望能給出個完整的已調試好程序,不甚感謝,給你20分問題補充:例子中9、2、14有誤,應該是11、2、14
太麻煩了
我只編了一

⑼ 高通3005和3034對比

高通HS-USB驅動 2.1.0.3,Qualcomm HS-USB Driver,QDLoader 9008
高通平台手機 Modem、網路、調試COM口 等的驅動 驅動版本 2.1.0.3 是目前最新版本的驅動了,支持如下 Qualcomm HS-USB QDLoader 9008 Qualcomm HS-USB Diagnostics ...等等很多高通平台手機調試所需的驅動
Qualcomm_QHSUSB_driver
高通QHSUSB_DLOAD驅動(含32位和64位) 安裝了高通驅動之後,之前的「QHSUSB_DLOAD」設備變成「Qualcomm HS-USB QDLoader 9008 (COMx)」,其中COMx不固定,有可能COM10也可能COM260或其它。 如果是64位操作系統,設備...
QCC512x/302x筆記(1)-- qcc5124晶元開發入門_文化人的..._CSDN博客
哈嘍大家好,這是該系列博文的第一篇~ 篇~ <<【系列博文索引】快速通道 >>QCC512x/302x筆記(1)-- qcc5124晶元開發入門_qcc302x earbuds code工作流程分析
QUalcomm CDMA Technologies msm
QUalcomm CDMA Technologies msm驅動
數字濾波器的C語言實現,包括高通、低通、帶通濾波器
數字濾波器的C語言實現,包括高通、低通、帶通濾波器
基於MATLAB的Filter使用,低通、帶通和高通濾波器的模擬
基於MATLAB的Filter使用,低通、帶通和高通濾波器的模擬。包括filter、ftt等函數的使用
QXDM_3.9.19_免安裝破解版.
高通的QXDM_3.9.19_免安裝破解版,可以使用100年都不需要注冊的
Atheros 無線網卡驅動 for Linux
Atheros AR8131 網卡驅動下載地址:(包括windows 驅動 和 Linux驅動) http://partner.atheros.com/Drivers.aspx Atheros AR9285無線網卡驅動,由開源項目MadWifi支持 在sourceforge搜索MadWifi可以找到: ...
高通MSM7225 datasheet
MSM7225的datasheet,153頁,PDF。
Qualcomm QPST 2.74 Build 323
Qualcomm QPST 2.74 Build 323 QUALCOMM MSM CHIPSET SURF/FFA CHIPSET CONFIGURATION TOOL
vuforia sdk 4.0版本
高通開發AR最新版本 vuforia sdk4.0版本
高通 QXDM 3.9.191 測試軟體
高通 QXDM 3.9.191 路測、系統測試軟體,高通晶元手機底層參數修改,支持EVDO。進行路測觀察,英文版。帶license
高通CSR藍牙晶元資料QCC3003DATASHEET
高通csr最新晶元資料QCC3003 datasheet數據手冊!!! TWS藍牙方案
高通QCA9531 晶元資料
高通QCA9531 晶元資料,很多硬體軟體開發人員必看的好東西。
DS-5 破解 有效期2099年
使用期限到2099年 破解步驟參見crack.txt 只在5.11版本上破解過,其他版本未嘗試。 如果破解後出現問題,卸載DS-5並刪除C:\Users\Administrator\AppData\Roaming\ARM\DS-5(WIN7)文件夾,然後重新安裝。...
高通QPST 工具最新版

⑽ 我做「基於FFT演算法與實現」和「FIR濾波器的設計與實現」的實驗。。

1.1 實驗目的

1.了解數字信號處理系統的一般構成;

2.掌握奈奎斯特抽樣定理。

1.2 實驗儀器

1.YBLD智能綜合信號源測試儀 1台

2.雙蹤示波器 1台

3.MCOM-TG305數字信號處理與現代通信技術實驗箱 1台

4.PC機(裝有MATLAB、MCOM-TG305配套實驗軟體) 1台

1.3 實驗原理

一個典型的DSP系統除了數字信號處理部分外,還包括A/D和D/A兩部分。這是因為自然界的信號,如聲音、圖像等大多是模擬信號,因此需要將其數字化後進行數字信號處理,模擬信號的數字化即稱為A/D轉換。數字信號處理後的數據可能需還原為模擬信號,這就需要進行D/A轉換。一個僅包括A/D和D/A兩部分的簡化數字信號處理系統功能如圖1所示。

A/D轉換包括三個緊密相關的過程,即抽樣、量化和編碼。A/D轉換中需解決的以下幾個重要問題:抽樣後輸出信號中還有沒有原始信號的信息?如果有能不能把它取出來?抽樣頻率應該如何選擇?

奈奎斯特抽樣定理(即低通信號的均勻抽樣定理)告訴我們,一個頻帶限制在0至fx以內的低通信號x(t),如果以fs≥2fx的抽樣速率進行均勻抽樣,則x(t)可以由抽樣後的信號xs(t)完全地確定,即xs(t)包含有x(t)的成分,可以通過適當的低通濾波器不失真地恢復出x(t)。最小抽樣速率fs=2fx稱為奈奎斯特速率。

低通

解碼

編碼

量化

抽樣

輸入信號 樣點輸出 濾波輸出

A/D(模數轉換) D/A(數模轉換)

圖1 低通采樣定理演示

為方便實現,實驗中更換了一種表現形式,即抽樣頻率固定(10KHz),通過改變輸入模擬信號的頻率來展示低通抽樣定理。我們可以通過研究抽樣頻率和模擬信號最高頻率分量的頻率之間的關系,來驗證低通抽樣定理。

1.4 實驗內容

1.軟體模擬實驗:編寫並調試MATLAB程序,分析有關參數,記錄有關波形。

2.硬體實驗:輸入不同頻率的正弦信號,觀察采樣時鍾波形、輸入信號波形、樣點輸出波形和濾波輸出波形。

1.5 MATLAB參考程序和模擬內容

%*******************************************************************%

%f—餘弦信號的頻率

% M—基2 FFT冪次數 N=2^M為采樣點數,這樣取值是為了便於作基2的FFT分析

%2. 采樣頻率Fs

%*******************************************************************%

function samples(f,Fs,M)

N=2^M; % fft點數=取樣總點數

Ts=1/Fs; % 取樣時間間隔

T=N*Ts; % 取樣總時間=取樣總點數*取樣時間間隔

n=0:N-1;

t=n*Ts;

Xn=cos(2*f*pi*t);

subplot(2,1,1);

stem(t,Xn);

axis([0 T 1.1*min(Xn) 1.1*max(Xn)]);

xlabel('t -->');

ylabel('Xn');

Xk=abs(fft(Xn,N));

subplot(2,1,2);

stem(n,Xk);

axis([0 N 1.1*min(Xk) 1.1*max(Xk)]);

xlabel('frequency -->');

ylabel('!Xk!');

%*******************************************************************%

假如有一個1Hz的餘弦信號y=cos(2*π*t),對其用4Hz的采樣頻率進行采樣,共采樣32點,只需執行samples(1,4,5),即可得到模擬結果。

軟體模擬實驗內容如下表所示:

模擬參數
f
Fs
Wo(計算)
Xn(圖形)
Xk(圖形)

(1,4,5)

另外記錄圖形,並標圖號

(1,8,5)

(2,8,6)

自 選

1.6 硬體實驗步驟

本實驗箱采樣頻率fs固定為10KHz,低通濾波器的截止頻率約為4.5KHz。

1、用低頻信號源產生正弦信號,正弦信號源頻率f自定,並將其接至2TP2(模擬輸入)端,將示波器通道一探頭接至2TP6(采樣時鍾)端觀察采樣時鍾波形,示波器通道二探頭接至2TP2觀察並記錄輸入信號波形。

2、將示波器通道二探頭接至2TP3觀察並記錄樣點輸出波形。

3、將示波器通道二探頭接至2TP4觀察並記錄濾波輸出波形。

4、根據采樣定理,分f=fs /8、f=fs/4、f=fs/2等3種情況更改正弦信號頻率,重復步驟2至步驟3。

5、用低頻信號源產生方波信號,重復步驟1至步驟4。

1.7 思考題

1、 討論在模擬實驗中所計算的數字域頻率Wo和Xk的圖形中非零譜線位置之間的對應關系。

2、 討論在模擬實驗中自選參數的意義。

3、將在2TP2端加方波信號後的恢復波形,與相同頻率的正弦信號的恢復波形相比,能夠得出哪些結論?

2 FFT頻譜分析實驗

2.1 實驗目的

1.通過實驗加深對快速傅立葉變換(FFT)基本原理的理解。

2.了解FFT點數與頻譜解析度的關系,以及兩種加長序列FFT與原序列FFT的關系。

2.2 實驗儀器

1.YBLD智能綜合信號源測試儀 1台

2.雙蹤示波器 1台

3.MCOM-TG305數字信號處理與現代通信技術實驗箱 1台

4.PC機(裝有MATLAB、MCOM-TG305配套實驗軟體) 1台

2.3 實驗原理

離散傅里葉變換(DFT)和卷積是信號處理中兩個最基本也是最常用的運算,它們涉及到信號與系統的分析與綜合這一廣泛的信號處理領域。實際上卷積與DFT之間有著互通的聯系:卷積可化為DFT來實現,其它的許多演算法,如相關、濾波和譜估計等都可化為DFT來實現,DFT也可化為卷積來實現。

對N點序列x(n),其DFT變換對定義為:

在DFT運算中包含大量的重復運算。FFT演算法利用了蝶形因子WN的周期性和對稱性,從而加快了運算的速度。FFT演算法將長序列的DFT分解為短序列的DFT。N點的DFT先分解為2個N/2點的DFT,每個N/2點的DFT又分解為2個N/4點的DFT。按照此規律,最小變換的點數即所謂的「基數(radix)。」因此,基數為2的FFT演算法的最小變換(或稱蝶形)是2點DFT。一般地,對N點FFT,對應於N個輸入樣值,有N個頻域樣值與之對應。一般而言,FFT演算法可以分為時間抽取(DIT)FFT和頻率抽取(DIF)兩大類。

在實際計算中,可以採用在原來序列後面補0的加長方法來提高FFT的解析度;可以採用在原來序列後面重復的加長方法來增加FFT的幅度。

2.4 實驗內容

1.軟體模擬實驗:分別觀察並記錄正弦序列、方波序列及改變FFT的點數後的頻譜;分別觀察並記錄正弦序列、方波序列及2種加長序列等信號的頻譜。

2.硬體實驗:分別觀察並記錄正弦信號、方波信號及改變FFT的點數後的頻譜。

2.5 MATLAB參考程序和模擬內容

%*******************************************************************%

function[x]=ffts(mode,M)

Nfft=2^M;

x=zeros(1,Nfft); %定義一個長度為Nfft的一維全0數組

if mode= =1 for n=0:Nfft-1 x(n+1)=sin(2*pi*n/Nfft); end

end %定義一個長度為Nfft的單周期正弦序列

if mode= =2 for n=0:Nfft-1 x(n+1)=sin(4*pi*n/Nfft); end

end %定義一個長度為Nfft的雙周期正弦序列

if mode= =3 for n=0:Nfft/2-1 x(n+1)=sin(4*pi*n/Nfft); end

end %定義一個長度為Nfft/2的正弦序列,後面一半為0序列。

if mode= =4 for n=0:Nfft-1 x(n+1)=square(2*pi*n/Nfft); end

end

if mode= =5 for n=0:Nfft-1 x(n+1)=square(2*pi*n/Nfft); end

end

if mode= =6 for n=0:Nfft/2-1 x(n+1)=square(4*pi*n/Nfft); end

end

n=0:Nfft-1;

subplot(2,1,1);

stem(n,x);

axis([0 Nfft-1 1.1*min(x) 1.1*max(x)]);

xlabel('Points-->');

ylabel('x(n)');

X=abs(fft(x,Nfft));

subplot(2,1,2);

stem(n,X);

axis([0 Nfft-1 1.1*min(X) 1.1*max(X)]);

xlabel('frequency-->');

ylabel('!X(k)!');

%*******************************************************************%

假設需觀察方波信號的頻譜,對一個周期的方波信號作32點的FFT,則只需在MATLAB的命令窗口下鍵入:[x]=ffts(21,5) ,程序進行模擬,並且輸出FFT的結果。

關於軟體模擬實驗內容,建議在完成大量模擬例子的基礎上,選擇能夠體現實驗要求的4個以上的例子進行記錄。例如要觀察後面補0的加長方法來提高FFT的解析度的現象,可以模擬ffts(4,5)和ffts(6,6)兩個例子。

2.6 硬體實驗步驟

1.將低頻信號源輸出加到實驗箱模擬通道1輸入端,將示波器探頭接至模擬通道1輸出端。

2.在保證實驗箱正確加電且串口電纜連接正常的情況下,運行數字信號處理與DSP應用實驗開發軟體,在「數字信號處理實驗」菜單下選擇「FFT頻譜分析」子菜單,出現顯示FFT頻譜分析功能提示信息的窗口。

3.用低頻信號產生器產生一個1KHz的正弦信號。

4.選擇FFT頻譜分析與顯示的點數為64點,開始進行FFT運算。此後,計算機將周期性地取回DSP運算後的FFT數據並繪圖顯示

5.改信號源頻率,觀察並記錄頻譜圖的變化。

6.選擇FFT的點數為128點,觀察並記錄頻譜圖的變化。

7.更改正弦信號的頻率,重復步驟4 ~步驟6。

8.用低頻信號產生器產生一個1KHz的方波信號,重復步驟4 ~步驟7。注意:應根據實驗箱采樣頻率fs為10KHz和方波信號的頻帶寬度選擇方波信號的頻率。

本硬體實驗要進行兩種信號,每個信號兩種頻率,每個信號兩種點數等共8次具體實驗內容,性質能夠體現實驗要求的4個以上的例子進行記錄。

2.7 思考題

1.對同一個信號,不同點數FFT觀察到的頻譜圖有何區別?

2.序列加長後FFT與原序列FFT的關系是什麼,試推導其中一種關系。

3.用傅立葉級數理論,試說明正弦信號頻譜和方波信號頻譜之間的關系。

3 IIR濾波器設計實驗

3.1 實驗目的

1.通過實驗加深對IIR濾波器基本原理的理解。

2.學習編寫IIR濾波器的MATLAB模擬程序。

3.2 實驗儀器

1.YBLD智能綜合信號源測試儀 1台

2.雙蹤示波器 1台

3.MCOM-TG305數字信號處理與現代通信技術實驗箱 1台

4.PC機(裝有MATLAB、MCOM-TG305配套實驗軟體) 1台

3.3 實驗原理

IIR濾波器有以下幾個特點:

1.IIR數字濾波器的系統函數可以寫成封閉函數的形式。

2.IIR數字濾波器採用遞歸型結構,即結構上帶有反饋環路。IIR濾波器運算結構通常由延時、乘以系數和相加等基本運算組成,可以組合成直接型、正准型、級聯型、並聯型四種結構形式,都具有反饋迴路。由於運算中的舍入處理,使誤差不斷累積,有時會產生微弱的寄生振盪。

3.IIR數字濾波器在設計上可以藉助成熟的模擬濾波器的成果,如巴特沃斯、契比雪夫和橢圓濾波器等,有現成的設計數據或圖表可查,其設計工作量比較小,對計算工具的要求不高。在設計一個IIR數字濾波器時,我們根據指標先寫出模擬濾波器的公式,然後通過一定的變換,將模擬濾波器的公式轉換成數字濾波器的公式。

4.IIR數字濾波器的相位特性不好控制,對相位要求較高時,需加相位校準網路。

在MATLAB下設計IIR濾波器可使用Butterworth函數設計出巴特沃斯濾波器,使用Cheby1函數設計出契比雪夫I型濾波器,使用Cheby2設計出契比雪夫II型濾波器,使用ellipord函數設計出橢圓濾波器。下面主要介紹前兩個函數的使用。

與FIR濾波器的設計不同,IIR濾波器設計時的階數不是由設計者指定,而是根據設計者輸入的各個濾波器參數(截止頻率、通帶濾紋、阻帶衰減等),由軟體設計出滿足這些參數的最低濾波器階數。在MATLAB下設計不同類型IIR濾波器均有與之對應的函數用於階數的選擇。

一、巴特沃斯IIR濾波器的設計

在MATLAB下,設計巴特沃斯IIR濾波器可使用butter函數。

Butter函數可設計低通、高通、帶通和帶阻的數字和模擬IIR濾波器,其特性為使通帶內的幅度響應最大限度地平坦,但同時損失截止頻率處的下降斜度。在期望通帶平滑的情況下,可使用butter函數。

butter函數的用法為:

[b,a]=butter(n,Wn,/ftype/)

其中n代表濾波器階數,Wn代表濾波器的截止頻率,這兩個參數可使用buttord函數來確定。buttord函數可在給定濾波器性能的情況下,求出巴特沃斯濾波器的最小階數n,同時給出對應的截止頻率Wn。buttord函數的用法為:

[n,Wn]= buttord(Wp,Ws,Rp,Rs)

其中Wp和Ws分別是通帶和阻帶的拐角頻率(截止頻率),其取值范圍為0至1之間。當其值為1時代表采樣頻率的一半。Rp和Rs分別是通帶和阻帶區的波紋系數。

不同類型(高通、低通、帶通和帶阻)濾波器對應的Wp和Ws值遵循以下規則:

1.高通濾波器:Wp和Ws為一元矢量且Wp>Ws;

2.低通濾波器:Wp和Ws為一元矢量且Wp<Ws;

3.帶通濾波器:Wp和Ws為二元矢量且Wp<Ws,如Wp=[0.2,0.7],Ws=[0.1,0.8];

4.帶阻濾波器:Wp和Ws為二元矢量且Wp>Ws,如Wp=[0.1,0.8],Ws=[0.2,0.7]。

二、契比雪夫I型IIR濾波器的設計

在期望通帶下降斜率大的場合,應使用橢圓濾波器或契比雪夫濾波器。在MATLAB下可使用cheby1函數設計出契比雪夫I型IIR濾波器。

cheby1函數可設計低通、高通、帶通和帶阻契比雪夫I型濾IIR波器,其通帶內為等波紋,阻帶內為單調。契比雪夫I型的下降斜度比II型大,但其代價是通帶內波紋較大。

cheby1函數的用法為:

[b,a]=cheby1(n,Rp,Wn,/ftype/)

在使用cheby1函數設計IIR濾波器之前,可使用cheblord函數求出濾波器階數n和截止頻率Wn。cheblord函數可在給定濾波器性能的情況下,選擇契比雪夫I型濾波器的最小階和截止頻率Wn。

cheblord函數的用法為:

[n,Wn]=cheblord(Wp,Ws,Rp,Rs)

其中Wp和Ws分別是通帶和阻帶的拐角頻率(截止頻率),其取值范圍為0至1之間。當其值為1時代表采樣頻率的一半。Rp和Rs分別是通帶和阻帶區的波紋系數。

3.4 實驗內容

1.軟體模擬實驗:編寫並調試MATLAB程序,選擇不同形式,不同類型的4種濾波器進行模擬,記錄幅頻和相頻特性,對比巴特沃斯濾波器和契比雪夫濾波器。

2.硬體實驗:設計IIR濾波器,在計算機上觀察沖激響應、幅頻特性和相頻特性,然後下載到實驗箱。用示波器觀察輸入輸出波形,測試濾波器的幅頻響應特性。

3.5 MATLAB參考程序和模擬內容

%*******************************************************************%

%mode: 1--巴特沃斯低通;2--巴特沃斯高通;3--巴特沃斯帶通;4--巴特沃斯帶阻

% 5--契比雪夫低通;6--契比雪夫高通;7--契比雪夫帶通;8--契比雪夫帶阻

%fp1,fp2: 通帶截止頻率,當高通或低通時只有fp1有效

%fs1, fs2: 阻帶截止頻率,當高通或低通時只有fs1有效

%rp: 通帶波紋系數

%as: 阻帶衰減系數

%sample: 采樣率

%h: 返回設計好的濾波器系數

%*******************************************************************%

function[b,a]=iirfilt(mode,fp1,fp2,fs1,fs2,rp,as,sample)

wp1=2*fp1/sample;wp2=2*fp2/sample;

ws1=2*fs1/sample;ws2=2*fs2/sample;

%得到巴特沃斯濾波器的最小階數N和3bd頻率wn

if mode<3[N,wn]=buttord(wp1,ws1,rp,as);

elseif mode<5[N,wn]=buttord([wp1 wp2],[ws1 ws2],rp,as);

%得到契比雪夫濾波器的最小階數N和3bd頻率wn

elseif mode<7[N,wn]=cheb1ord(wp1,ws1,rp,as);

else[N,wn]=cheblord([wp1 wp2],[ws1 ws2],rp,as);

end

%得到濾波器系數的分子b和分母a

if mode= =1[b,a]=butter(N,wn);end

if mode= =2[b,a]=butter(N,wn,/high/);end

if mode= =3[b,a]=butter(N,wn);end

if mode= =4[b,a]=butter(N,wn,/stop/);end

if mode= =5[b,a]=cheby1(N,rp,wn);end

if mode= =6[b,a]=cheby1(N,rp,wn,/high/);end

if mode= =7[b,a]=cheby1(N,rp,wn);end

if mode= =8[b,a]=cheby1(N,rp,wn,/stop/);end

set(gcf,/menubar/,menubar);

freq_response=freqz(b,a);

magnitude=20*log10(abs(freq_response));

m=0:511;

f=m*sample/(2*511);

subplot(3,1,1);plot(f,magnitude);grid; %幅頻特性

axis([0 sample/2 1.1*min(magnitude) 1.1*max(magnitude)]);

ylabel('Magnitude');xlabel('Frequency-->');

phase=angle(freq_response);

subplot(3,1,2);plot(f,phase);grid; %相頻特性

axis([0 sample/2 1.1*min(phase) 1.1*max(phase)]);

ylabel('Phase');xlabel('Frequency-->');

h=impz(b,a,32); %32點的單位函數響應

t=1:32;

subplot(3,1,3);stem(t,h);grid;

axis([0 32 1.2*min(h) 1.1*max(h)]);

ylabel('h(n)');xlabel('n-->');

%*******************************************************************%

假設需設計一個巴特沃斯低通IIR濾波器,通帶截止頻率為2KHz,阻帶截止頻率為3KHz,通帶波紋系數為1,阻帶衰減系數為20,采樣頻率為10KHz,則只需在MATLAB的命令窗口下鍵入:

[b,a]=iirfilt(1,2000,3000,2400,2600,1,20,10000)

程序進行模擬,並且按照如下順序輸出數字濾波器系統函數

的系數

b= b0 b1 ……bn

a= a0 a1 ……an

關於軟體模擬實驗內容,建議在完成大量模擬例子的基礎上,選擇能夠體現實驗要求的4個例子進行記錄,系統函數只要記錄系統的階數。

3.6 硬體實驗步驟

1.根據實驗箱采樣頻率fs為10KHz的條件,用低頻信號發生器產生一個頻率合適的低頻正弦信號,將其加到實驗箱模擬通道1輸入端,將示波器通道1探頭接至模擬通道1輸入端,通道2探頭接至模擬通道2輸出端。

2.在保證實驗箱正確加電且串口電纜連接正常的情況下,運行數字信號處理與DSP應用實驗開發軟體,在「數字信號處理實驗」菜單下選擇「IIR濾波器」子菜單,出現提示信息。

3.輸入濾波器類型、濾波器截止頻率等參數後,分別點擊「幅頻特性」和「相頻特性」按鈕,在窗口右側觀察IIR濾波器的幅頻特性和相頻特性。此時提示信息將消失,如需查看提示信息,可點擊「設計說明」按鈕。

4.點擊「下載實現」按鈕,IIR濾波器開始工作,此時窗口右側將顯示IIR濾波器的幅頻特性。

5.根據輸入濾波器類型,更改低頻信號源的頻率,觀察示波器上輸入輸出波形幅度的變化情況,測量IIR濾波器的幅頻響應特性,看其是否與設計的幅頻特性一致。

6.更改濾波器類型、濾波器截止頻率等參數(共4種),重復步驟3至步驟5。所選擇的例子參數最好和MATLAB模擬程序的例子一樣。

7.用低頻信號產生器產生一個500Hz的方波信號,分別設計3種濾波器,完成如下表要求的功能,並且記錄參數和波形。

功 能
濾波器類型
參 數
輸出波形

fp1
fp2
fs1
fs2

通過3次及以下次數的諧波

另外記錄圖形,並標圖號

濾除5次及以下次數的諧波

通過3次到5次的諧波

3.7 思考題

1.在實驗箱采樣頻率fs固定為10KHz的條件下,要觀察方波信號頻帶寬度內的各個諧波分量,方波信號的頻率最高不能超過多少,為什麼?

2.硬體實驗內容7中輸出信號各個諧波分量,與原來方波信號同樣諧波分量相比,有沒有發生失真?主要發生了什麼類型的失真?為什麼?

4 窗函數法FIR濾波器設計實驗

4.1 實驗目的

1.通過實驗加深對FIR濾波器基本原理的理解。

2.學習使用窗函數法設計FIR濾波器,了解窗函數的形式和長度對濾波器性能的影響。

4.2 實驗儀器

1.YBLD智能綜合信號源測試儀 1台

2.雙蹤示波器 1台

3.MCOM-TG305數字信號處理與現代通信技術實驗箱 1台

4.PC機(裝有MATLAB、MCOM-TG305配套實驗軟體) 1台

4.3 實驗原理

數字濾波器的設計是數字信號處理中的一個重要內容。數字濾波器設計包括FIR(有限單位脈沖響應)濾波器與IIR(無限單位脈沖響應)濾波器兩種。

與IIR濾波器相比,FIR濾波器在保證幅度特性滿足技術要求的同時,很容易做到嚴格的線性相位特性。設FIR濾波器單位脈沖響應h(n)長度為N,其系統函數H(z)為:

H(z)是z-1的N-1次多項式,它在z平面上有N-1個零點,原點z=0是N-1階重極點,因此H(z)是永遠穩定的。穩定和線性相位特性是FIR濾波器突出的優點。

FIR濾波器的設計任務是選擇有限長度的h(n)。使傳輸函數H( )滿足技術要求。FIR濾波器的設計方法有多種,如窗函數法、頻率采樣法及其它各種優化設計方法,本實驗介紹窗函數法的FIR濾波器設計。

窗函數法是使用矩形窗、三角窗、巴特利特窗、漢明窗、漢寧窗和布萊克曼窗等設計出標准響應的高通、低通、帶通和帶阻FIR濾波器。

一、firl函數的使用

在MATLAB下設計標准響應FIR濾波器可使用firl函數。firl函數以經典方法實現加窗線性相位FIR濾波器設計,它可以設計出標準的低通、帶通、高通和帶阻濾波器。firl函數的用法為:

b=firl(n,Wn,/ftype/,Window)

各個參數的含義如下:

b—濾波器系數。對於一個n階的FIR濾波器,其n+1個濾波器系數可表示為:b(z)=b(1)+b(2)z-1+…+b(n+1)z-n。

n—濾波器階數。

Wn—截止頻率,0≤Wn≤1,Wn=1對應於采樣頻率的一半。當設計帶通和帶阻濾波器時,Wn=[W1 W2],W1≤ω≤W2。

ftype—當指定ftype時,可設計高通和帶阻濾波器。Ftype=high時,設計高通FIR濾波器;ftype=stop時設計帶阻FIR濾波器。低通和帶通FIR濾波器無需輸入ftype參數。

Window—窗函數。窗函數的長度應等於FIR濾波器系數個數,即階數n+1。

二、窗函數的使用

在MATLAB下,這些窗函數分別為:

1.矩形窗:w=boxcar(n),產生一個n點的矩形窗函數。

2.三角窗:w=triang(n),產生一個n點的三角窗函數。

當n為奇數時,三角窗系數為w(k)=
當n為偶數時,三角窗系數為w(k)=
3.巴特利特窗:w=Bartlett(n),產生一個n點的巴特利特窗函數。

巴特利特窗系數為w(k)=
巴特利特窗與三角窗非常相似。巴特利特窗在取樣點1和n上總以零結束,而三角窗在這些點上並不為零。實際上,當n為奇數時bartlett(n)的中心n-2個點等效於triang(n-2)。

4.漢明窗:w=hamming(n),產生一個n點的漢明窗函數。

漢明窗系數為w(k+1)=0.54-0.46cos( ) k=0,…,n-1

5.漢寧窗:w=hanning(n),產生一個n點的漢寧窗函數。

漢寧窗系數為w(k)=0.5[1-cos( )] k=1,…,n

6.布萊克曼窗:w=Blackman(n),產生一個n點的布萊克曼窗函數。

布萊克曼窗系數為w(k)=0.42-0.5cos(2π )+0.8cos(4π )] k=1,…,n

與等長度的漢明窗和漢寧窗相比,布萊克曼窗的主瓣稍寬,旁瓣稍低。

7.凱澤窗:w=Kaiser(n,beta),產生一個n點的凱澤窗數,其中beta為影響窗函數旁瓣的β參數,其最小的旁瓣抑制α與β的關系為:

0.1102(α-0.87) α>50

β= 0.5842(α-21)0.4+0.07886(α-21) 21≤α≤50

0 α<21

增加β可使主瓣變寬,旁瓣的幅度降低。

8.契比雪夫窗:w=chebwin(n,r)產生一個n點的契比雪夫窗函數。其傅里葉變換後的旁瓣波紋低於主瓣r個db數。

4.4 實驗內容

1.軟體模擬實驗:編寫並調試MATLAB程序,觀察不同窗,不同類型濾波器不同點數等共4種FIR濾波器的h(n),並記錄幅頻特性和相頻特性。

2.硬體實驗:用窗函數法設計標准響應的FIR濾波器,在計算機上觀察窗函數幅頻特性、幅頻特性和相頻特性,然後下載到實驗箱。用示波器觀察輸入輸出波形,測試濾波器的幅頻響應特性。

4.5 MATLAB參考程序和模擬內容

%*******************************************************************%

%mode: 模式(1--高通;2--低通;3--帶通;4--帶阻)

%n: 階數,加窗的點數為階數加1

%fp: 高通和低通時指示截止頻率,帶通和帶阻時指示下限頻率

%fs: 帶通和帶阻時指示上限頻率

%window:加窗(1--矩形窗;2--三角窗;3--巴特利特窗;4--漢明窗;

% 5--漢寧窗;6--布萊克曼窗;7--凱澤窗;8--契比雪夫窗)

%r: 代表加chebyshev窗的r值和加kaiser窗時的beta值

%sample: 采樣率

%h: 返回設計好的FIR濾波器系數

%*******************************************************************%

%mode: 模式(1--高通;2--低通;3--帶通;4--帶阻)

%n: 階數,加窗的點數為階數加1

%fp: 高通和低通時指示截止頻率,帶通和帶阻時指示下限頻率

%fs:

熱點內容
腳本精靈並且 發布:2024-05-20 11:39:40 瀏覽:265
綠盟登陸器單機怎麼配置列表 發布:2024-05-20 11:34:34 瀏覽:970
Android省電軟體 發布:2024-05-20 11:25:00 瀏覽:340
android鍵盤隱藏 發布:2024-05-20 11:23:40 瀏覽:522
瘋狂點擊的點擊腳本 發布:2024-05-20 11:09:06 瀏覽:685
飯團文件夾 發布:2024-05-20 10:56:18 瀏覽:574
win10系統重置密碼是多少 發布:2024-05-20 10:47:51 瀏覽:992
java加包 發布:2024-05-20 10:39:12 瀏覽:713
網吧里的電影怎麼傳伺服器 發布:2024-05-20 10:31:12 瀏覽:809
新年解壓糖 發布:2024-05-20 09:50:55 瀏覽:55