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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

1.巴特沃斯模拟滤波器(低通,高通,带通,带阻)设计-MATLAB实现(蔡徐坤2018年音乐EP)

發(fā)布時(shí)間:2023/12/19 综合教程 39 生活家
生活随笔 收集整理的這篇文章主要介紹了 1.巴特沃斯模拟滤波器(低通,高通,带通,带阻)设计-MATLAB实现(蔡徐坤2018年音乐EP) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文是模擬濾波器設(shè)計(jì),如果需要了解數(shù)字濾波器的內(nèi)容,可以按順序看我寫(xiě)的另外兩篇博客,如下:

2.MATLAB實(shí)現(xiàn)無(wú)限脈沖響應(yīng)數(shù)字濾波器(IIR)

3.MATLAB實(shí)現(xiàn)有限脈沖響應(yīng)數(shù)字濾波器(FIR)

1. 基礎(chǔ)知識(shí)介紹

我們首先明確一個(gè)知識(shí)(這個(gè)非常重要):

某正弦信號(hào),頻率為50Hz
這意味著 信號(hào)的模擬頻率 f f f= 50 (Hz),注意它的單位是Hz

信號(hào)的表達(dá)式為
y = s i n ( 2 π f t ) = s i n ( 2 π ? 50 t ) = s i n ( 100 π t ) y = sin(2\pi ft)=sin(2\pi *50 t)=sin(100\pi t) y=sin(2πft)=sin(2π?50t)=sin(100πt)

由于信號(hào)也可以表示為 y = s i n ( Ω t ) y = sin(\Omega t) y=sin(Ωt)的形式,所以這里
Ω = 2 π f = 100 π \Omega=2\pi f=100\pi Ω=2πf=100π

這里的 Ω \Omega Ω 是模擬角頻率它的單位是rad/s

注意模擬角頻率 Ω \Omega Ω 和模擬頻率 f f f的關(guān)系 Ω = 2 π f \Omega=2\pi f Ω=2πf

2. 函數(shù)介紹

首先介紹一些用到的MATLAB函數(shù)

2.1 buttord – 求解濾波器的階數(shù)N和3dB截止頻率wc

[N,wc] = buttord(wp, ws, Rp, As, ‘s’)  

輸入?yún)?shù)如下:

通帶邊界模擬頻率wp、阻帶邊界模擬頻率ws模擬角頻率單位是rad/s

通帶最大衰減Rp、阻帶最小衰減As單位是dB

‘s’指的就是模擬濾波器,設(shè)計(jì)數(shù)字濾波器時(shí)就沒(méi)有’s’這個(gè)參數(shù)了。

2.2 butter – 求解N階濾波器的具體參數(shù)B和A,求解完B和A后濾波器就設(shè)計(jì)完成了。

[B,A] = butter(N, wc, ‘ftype’, ‘s’)  - 模擬濾波器設(shè)計(jì)

輸入?yún)?shù)如下:

N – 濾波器階數(shù)

wc – 3dB截止模擬頻率(單位rad/s,N和wc都是用buttord函數(shù)計(jì)算出來(lái)的)

ftype – 濾波器類(lèi)型‘’:
(1)當(dāng)輸入wc為一維向量時(shí):
默認(rèn)情況下設(shè)計(jì)的低通濾波器,設(shè)計(jì)高通濾波器的話令ftype=high

(2)當(dāng)輸入wc為二維向量[wcl,wcu]時(shí):
默認(rèn)情況下設(shè)計(jì)的帶通濾波器,設(shè)計(jì)帶阻濾波器的話令ftype=stop

2.3 filter – 濾波函數(shù)

y = filter(B,A,x)

這個(gè)就是濾波函數(shù)了,

x是輸入的有噪聲的信號(hào),

B,A就是設(shè)計(jì)好的濾波器參數(shù)

得到的輸出y就是濾波后的信號(hào)了。

3. 代碼實(shí)現(xiàn):

(1)低通濾波器:

例: 設(shè)計(jì)通帶截止頻率5kHz,通帶衰減2dB,阻帶截止頻率12kHz,阻帶衰減30dB的巴特沃斯低通濾波器

由題可知,設(shè)計(jì)的是模擬濾波器,所以用到下面三個(gè)函數(shù):

[N,wc] = buttord(wp, ws, Rp, As, ‘s’)
[B,A] = butter(N, wc, ‘ftype’, ‘s’)
y = filter(B,A,x)

劃重點(diǎn) ! ! !

模擬濾波器的頻率都是模擬角頻率 Ω \Omega Ω ,它和頻率 f f f 的關(guān)系
Ω = 2 π f \Omega = 2\pi f Ω=2πf

所以這里

wp = 2 ? p i ? 5000 2*pi*5000 2?pi?5000,ws = 2 ? p i ? 12000 2*pi*12000 2?pi?12000,Rp = 2, As = 30

代碼如下:


wp = 2 * pi * 5000;
ws = 2 * pi * 12000;
Rp = 2;
As = 30;

[N, wc] = buttord(wp, ws, Rp, As, 's');
[B, A] = butter(N, wc, 's');

上面這些代碼就設(shè)計(jì)好了濾波器

如果有輸入噪聲信號(hào)x的話,調(diào)用y = filter(B,A,x),得到的y就是濾波后的信號(hào)了。

下面是繪圖部分

為了讓濾波器的結(jié)果得到更形象的表示,我們可以畫(huà)出來(lái)它的幅頻特性曲線,代碼如下:
其中,我們使用了freqs這個(gè)函數(shù),

h = freqs(B,A,wk)

它是用來(lái)計(jì)算當(dāng)頻率為wk時(shí),對(duì)應(yīng)的頻率響應(yīng)h的大小,主要是用來(lái)畫(huà)圖的。

繪圖代碼如下:


f = 0 : 10 : 14000;%取點(diǎn),從0-14000,每隔10取一個(gè)點(diǎn)
w = 2 * pi * f;%注意模擬濾波器用的頻率都是模擬角頻率,要乘上2pi的
Hk = freqs(B,A,w);%對(duì)于取的每個(gè)點(diǎn),求該處的頻率響應(yīng)大小
%畫(huà)圖
figure
plot(f/1000, 20 * log10(abs(Hk)));%橫坐標(biāo)單位是kHz,縱坐標(biāo)單位是dB,
grid on;
%設(shè)置橫縱坐標(biāo)標(biāo)簽
xlabel('f/kHz');
ylabel('-A(f)/dB');
%設(shè)置橫縱坐標(biāo)軸范圍
axis([0, 14, -40, 5]);

繪圖結(jié)果如下:

(2)高通濾波器:

高通濾波器與低通幾乎完全一樣,只要注意
[B,A] = butter(N, wc, ‘ftype’, ‘s’)中的 ftype=high

例: 設(shè)計(jì)通帶截止頻率4kHz,通帶衰減0.1dB,阻帶截止頻率1kHz,阻帶衰減40dB的巴特沃斯高通濾波器

代碼如下:


wp = 2 * pi * 4000;
ws = 2 * pi * 1000;
Rp = 0.1;
As = 40;
[N, wc] = buttord(wp, ws, Rp, As, 's');
[B, A] = butter(N, wc,'high', 's');%注意這個(gè)'high'

高通濾波器設(shè)計(jì)完成了

如果有輸入噪聲信號(hào)x的話,調(diào)用 y = filter(B,A,x),得到的y就是濾波后的信號(hào)了。

接著我們畫(huà)出高通濾波器的幅頻特性曲線


f = 0 : 10 : 14000;%取點(diǎn),從0-14000,每隔10取一個(gè)點(diǎn)
w = 2 * pi * f;%注意模擬濾波器用的頻率都是模擬角頻率,要乘上2pi的
Hk = freqs(B,A,w);%對(duì)于取的每個(gè)點(diǎn),求該處的頻率響應(yīng)大小
%畫(huà)圖
figure
plot(f/1000, 20 * log10(abs(Hk)));%橫坐標(biāo)單位是kHz,縱坐標(biāo)單位是dB,
grid on;
%設(shè)置橫縱坐標(biāo)標(biāo)簽
xlabel('f/kHz');
ylabel('-A(f)/dB');
%設(shè)置橫縱坐標(biāo)軸范圍
axis([0, 14, -60, 5]);

曲線圖如下:

(3)帶通濾波器:

例: 設(shè)計(jì)巴特沃斯帶通濾波器,通帶上下邊界頻率分別為4kHz和7kHz,通帶衰減1dB,阻帶上下邊界頻率2kHz和9kHz,阻帶衰減20dB。

濾波器設(shè)計(jì)代碼如下:

%帶通
wp = 2 * pi * [4000, 7000];
ws = 2 * pi * [2000,9000];
Rp = 1;
As = 20;
[N, wc] = buttord(wp, ws, Rp, As, 's');%此時(shí)輸入wp和ws都是二維的,輸出wc也是兩維的
[B, A] = butter(N, wc,'s');

帶通模擬濾波器設(shè)計(jì)完成了

如果有輸入噪聲信號(hào)x的話,調(diào)用y = filter(B,A,x),得到的y就是濾波后的信號(hào)了。

接著我們畫(huà)出帶通濾波器的幅頻特性曲線,如下:


f = 0 : 10 : 14000;%取點(diǎn),從0-14000,每隔10取一個(gè)點(diǎn)
w = 2 * pi * f;%注意模擬濾波器用的頻率都是模擬角頻率,要乘上2pi的
Hk = freqs(B,A,w);%對(duì)于取的每個(gè)點(diǎn),求該處的頻率響應(yīng)大小
%畫(huà)圖
figure
plot(f/1000, 20 * log10(abs(Hk)));%橫坐標(biāo)單位是kHz,縱坐標(biāo)單位是dB,
grid on;
%設(shè)置橫縱坐標(biāo)標(biāo)簽
xlabel('f/kHz');
ylabel('-A(f)/dB');
%設(shè)置橫縱坐標(biāo)軸范圍
axis([0, 14, -60, 5]);

曲線圖如下:

(4)帶阻濾波器:

例: 設(shè)計(jì)巴特沃斯帶阻濾波器,通帶上下邊界頻率分別為2kHz和9kHz,通帶衰減1dB,阻帶上下邊界頻率4kHz和7kHz,阻帶衰減20dB。


%帶阻
wp = 2 * pi * [2000, 9000];
ws = 2 * pi * [4000,7000];
Rp = 1;
As = 20;
[N, wc] = buttord(wp, ws, Rp, As, 's');%此時(shí)輸入wp和ws都是二維的,輸出wc也是兩維的
[B, A] = butter(N, wc,'stop','s');
帶阻模擬濾波器設(shè)計(jì)完成了,如果有輸入噪聲信號(hào)x的話,調(diào)用
y = filter(B,A,x),得到的y就是濾波后的信號(hào)了。

接著我們畫(huà)出帶阻濾波器的幅頻特性曲線,代碼如下:


f = 0 : 10 : 14000;%取點(diǎn),從0-14000,每隔10取一個(gè)點(diǎn)
w = 2 * pi * f;%注意模擬濾波器用的頻率都是模擬角頻率,要乘上2pi的
Hk = freqs(B,A,w);%對(duì)于取的每個(gè)點(diǎn),求該處的頻率響應(yīng)得下
%畫(huà)圖
figure
plot(f/1000, 20 * log10(abs(Hk)));%橫坐標(biāo)單位是kHz,縱坐標(biāo)單位是dB,
grid on;
%設(shè)置橫縱坐標(biāo)標(biāo)簽
xlabel('f/kHz');
ylabel('-A(f)/dB');
%設(shè)置橫縱坐標(biāo)軸范圍
axis([0, 14, -100, 5]);

結(jié)果如下:

總結(jié)

以上是生活随笔為你收集整理的1.巴特沃斯模拟滤波器(低通,高通,带通,带阻)设计-MATLAB实现(蔡徐坤2018年音乐EP)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。