導航:首頁 > 凈水問答 > 雙線性過濾matlab

雙線性過濾matlab

發布時間:2022-01-12 14:12:05

1. 關於matlab的雙線型變換

1、你手算的有錯誤吧?按照z=(2-s)/(2+s)替換,不應該是你寫的結果:

>>symszs
>>g=(3*z-4)/(z^2-2*z+1);
>>g1=simple(subs(g,z,(2+s)/(2-s)))
g1=
1/4*(-4+16*s-7*s^2)/s^2

2、直接用d2c(g)並不是使用雙線性變換法,而是使用默認的零階保持法(zoh)。

3、雙線性變換法應該用d2c(g,'tustin')

>>d2c(g,'tustin')

Transferfunction:
-1.75s^2+4s-1
-------------------
s^2

和上面使用符號運算得到的結果是一致的。

2. 用雙線性變換法分別設計數字Butterworth低通、高通和帶通濾波器(IIR),使用MATLAB或者C語言編程實現數字B

97頁

3. 請MATLAB高手指教,音樂信號濾波去噪—用雙線性變換法設計一個巴特沃茲濾波器,在設計巴特沃茲濾波器的時

s=10;...
[N,wn]=buttord(wp,ws,Rp,Rs,'s');...
[num,den]=butter(N,wn,'s');...
wa=0:(3*ws)/511:3*ws;...
h=freqs(num,den,wa);...
plot(wa/(2*pi),20*log10(abs(h)));grid
title('傳輸函數');...
n=0:1/255:5;...
x1=cos(2*pi*n);x2=cos(2*pi*9*n);...
y=filter(h,1,x1+x2);...
subplot(2,2,1)
plot(n,x1);grid
title('x1');
subplot(2,2,2)
plot(n,x2);grid
title('x2');
subplot(2,2,3)
plot(n,x1+x2);grid
title('x1+x2');
plot(n,x1+x2);
title('x1+x2');
subplot(2,2,4)
plot(n,y);grid...

4. 利用MATLAB結合雙線性變換法設計一個數字切比雪夫帶通IIR濾波器

通帶頻率0.2*pi,截止頻率0.3*pi通帶衰減波紋比1dB,阻帶衰減15dB
>> wp=0.2*pi;
>> ws=0.3*pi;
>> Rp=1;
>> As=15;
>> T=1;Fs=1/T;
>> OmegaP=(2/T)*tan(wp/2);
>> OmegaS=(2/T)*tan(ws/2);
>> [cs,ds]=afd_chb1(OmegaP,OmegaS,Rp,As);

*** Chebyshev-1 Filter Order= 4
>> [b,a]=bilinear(cs,ds,Fs);%雙線性變換
>> [C,B,A]=dir2cas(b,a)

當然先得加上2個M函數,是頻帶變換的
函數1

function [b,a]=afd_chb1(Wp,Ws,Rp,As);
% Analog Lowpass Filter Design:Chebyshen-1
%----------------------------------------------
% [b,a]=afd_chb1(Wp,Ws,Rp,As);
% b=Numerator coefficients of Ha(s)
% a=Denominator coefficients of Ha(s)
% Wp=Passband edge frequency in rad/sec ;Wp>0
% Ws=Stopband edge frequency in rad/sec;Ws>Wp>0
% Rp=Passband ripple in +dB;(Rp>0)
% As=Stopband attenuation in +dB;(As>0)
%
if Wp<=0
error('Passband edge must be large than 0')
end

5. 基於雙線性變換法用MATLAB設計低通、高通、帶通濾波器

我當時改寫的課程設計程序,希望對你有幫助(參數自己改,很容易的)
%%%%%%%%%%%%% 低通濾波 %%%%%%%%%%%%%%%%
clear;
clear clf;
%%% 對連續時間信號進行采樣
f1=2;f2=5;f3=8;
fs=20;Ts=1/fs;
M=200;
k=0:M-1;
fk=cos(2*pi*f1*k*Ts)+cos(2*pi*f2*k*Ts)+cos(2*pi*f3*k*Ts);
%figure(1)
subplot(411)
plot(k,fk)%stem(k,fk)
xlabel ' '
title '濾波前的波形圖';

N = M;
F = fft(fk, N);
subplot(412)
plot(2*pi*(0:N/2-1)/N/pi, 2*abs(F(1:N/2))/N);
xlabel ' '
title '濾波前的頻譜曲線';

h=[0.00111829516864 -0.00389476479172 -0.01603491745519 -0.02036377118215 0.02095180705130 0.12449781344246...
0.24450683184615 0.2984374118 0.24450683184615 0.12449781344246 0.02095180705130 -0.02036377118215...
-0.01603491745519 -0.00389476479172 0.00111829516864];
yk = conv(fk,h);

%figure(2)
subplot(413)
plot(0:M+15-2,yk,'g')%stem(0:M+15-2,yk)
xlabel ' '
title '低通濾波後的波形圖';
axis([0 M -1 1])
Y = fft(yk, N);
subplot(414)
plot(2*pi*(0:N/2-1)/N/pi, 2*abs(Y(1:N/2))/N,'g');
title '低通濾波後的頻譜曲線';
%===================註:與高通濾波不同之處在於h的取值
%%%%%%%%%%%%% 課程設計(2) %%%%%%%%%%%%%
%%%%%%%%%%%%% 高通濾波 %%%%%%%%%%%%%%%%
clear;
clear clf;
%%% 對連續時間信號進行采樣
f1=2;f2=5;f3=8;
fs=20;Ts=1/fs;
M=200;
k=0:M-1;
fk=cos(2*pi*f1*k*Ts)+cos(2*pi*f2*k*Ts)+cos(2*pi*f3*k*Ts);
%figure(1)
subplot(411)
plot(k,fk)
xlabel ' '
title '濾波前的波形圖';

N = M;
F = fft(fk, N);
subplot(412)
plot(2*pi*(0:N/2-1)/N/pi, 2*abs(F(1:N/2))/N);
xlabel ' '
title '濾波前的頻譜曲線';

h=[-0.00111829516864 -0.00389476479172 0.01603491745519 -0.02036377118215 -0.02095180705130 0.12449781344246...
-0.24450683184615 0.2984374118 -0.24450683184615 0.12449781344246 -0.02095180705130 -0.02036377118215...
0.01603491745519 -0.00389476479172 -0.00111829516864];
yk = conv(fk,h);

%figure(2)
subplot(413)
plot(0:M+15-2,yk)
xlabel ' '
title '濾波後的波形圖';
axis([0 M -1 1])
Y = fft(yk, N);
subplot(414)
plot(2*pi*(0:N/2-1)/N/pi, 2*abs(Y(1:N/2))/N);
title '濾波前的頻譜曲線';
%%%%%%%%%%%%% 課程設計(4) %%%%%%%%%%%%%
%%%%%%%%%%%%% 帶通濾波 %%%%%%%%%%%%%%%%
clear;
clear clf;
%%% 對連續時間信號進行采樣
f1=2;f2=5;f3=8;
fs=20;Ts=1/fs;
M=200;
k=0:M-1;
fk=cos(2*pi*f1*k*Ts)+cos(2*pi*f2*k*Ts)+cos(2*pi*f3*k*Ts);
subplot(411)
plot(k,fk)
xlabel ' '
title '濾波前的波形圖'

N = M;
F = fft(fk, N);
subplot(412)
plot(2*pi*(0:N/2-1)/N/pi, 2*abs(F(1:N/2))/N);
xlabel ' '
title '濾波前的頻譜曲線'

h=[ 0 0.00809904403983 0 0.04234583818052 0 -0.25888938815435 0 0.41372763540994 0 -0.25888938815435 0 0.04234583818052 0 0.00809904403983 0];
yk = conv(fk,h);

figure(2)
subplot(413)
plot(0:M+15-2,yk)
axis([0 M -1 1])
Y = fft(yk, N);
subplot(414)
plot(2*pi*(0:N/2-1)/N/pi, 2*abs(Y(1:N/2))/N);
title '濾波前的頻譜曲線'
%%%%%%%%%%%%% 課程設計(4) %%%%%%%%%%%%%
%%%%%%%%%%%%% 帶阻濾波 %%%%%%%%%%%%%%%%
clear;
clear clf;
%%% 對連續時間信號進行采樣
f1=2;f2=5;f3=8;
fs=20;Ts=1/fs;
M=200;
k=0:M-1;
fk=cos(2*pi*f1*k*Ts)+cos(2*pi*f2*k*Ts)+cos(2*pi*f3*k*Ts);

subplot(411)
plot(k,fk)
xlabel ' '
title '濾波前的波形圖'
N = M;
F = fft(fk, N);
subplot(412)
plot(2*pi*(0:N/2-1)/N/pi, 2*abs(F(1:N/2))/N);
xlabel ' '
title '濾波前的頻譜曲線'

h=[ 0 -0.00780645449547 0 -0.04081603423850 0 0.24953663889817 0 0.59817169967160...
0 0.24953663889817 0 -0.04081603423850 0 -0.00780645449547 0];
yk = conv(fk,h);

subplot(413)
plot(0:M+15-2,yk,'r')
xlabel ' '
title '帶阻濾波後前的波形圖'
axis([0 M -1 1])
Y = fft(yk, N);
subplot(414)
plot(2*pi*(0:N/2-1)/N/pi, 2*abs(Y(1:N/2))/N,'r');
title '帶阻濾波前的頻譜曲線'

6. 利用MATLAB結合雙線性變換法設計一個IIR數字butterworth低通濾波器

在命令窗口輸入
wp=1k/10k
ws=1.5/10
rp=1.5db
rs=25
[N,Wn]=BUTTORD(wp,ws,rp,rs)
[b,a]=butter(n,wn)
freqz(b,a)
搞定

7. 聯系matlab用雙線性變換法設計Butterworth低通濾波器m

%下面程序可能對你有用,需根據你的指標修改一下前5行相關參數就行,至於最後顯示部分,相應變化一下即可。
%1.用Butterworth低通模擬濾波器原型%%%%%%%%%%%%%%%%%%%%%%%%%%%%數字濾波器指標
Wp=0.3*pi; %通帶邊界頻率(歸一化):wp=fp*2*pi/fs
Ws=0.5*pi; %阻帶邊界頻率(歸一化):ws=fr*2*pi/fs
Rp=0.5; %通帶波紋
As=40; %阻帶衰減
%轉換為模擬濾波器指標(預畸);
Ts=0.000125;fs=8000;
OmegaP=(2/Ts)*tan(Wp/2); %模擬低通原型濾波器通帶頻率
OmegaS=(2/Ts)*tan(Ws/2); %模擬低通原型濾波器阻帶頻率

[N,OmegaC]=buttord(OmegaP,OmegaS,Rp,As,'s'); %模擬巴特沃斯濾波器的階數和-3dB截止頻率計算,這時要加字元's'。
[z0,p0,k0]=buttap(N); %設計歸一化巴特沃茲濾波器低通原型
%進行非歸一化處理
p=p0*OmegaC; z=z0*OmegaC;
k=k0*OmegaC^N;
ba=k*real(poly(z));
aa=real(poly(p));

[bd,ad]=bilinear(ba,aa,fs); %雙線性變換
[h,w]=freqz(bd,ad); %計算頻率響應
am=20*log10(abs(h));
ph=angle(h);
%繪圖
subplot(2,1,1);plot(w/pi,am);
axis([0 1 -250 5]);
xlabel('w(以pi為單位)');ylabel('|H(ejw)|以dB為單位');
set(gca,'XTickMode','manual','XTick',[0 0.3 0.5 1]);
set(gca,'YTickMode','manual','YTick',[ -40 0]);grid;
subplot(2,1,2);plot(w/pi,ph/pi);xlabel('w(以pi為單位)');ylabel('相位以pi為單位');

8. 用雙線性變換法設計一個數字巴特沃斯型帶阻濾波器 用MATLAB編程 急!!!

%當1KHz≤f≤2KHz時,衰減至少為18 dB,當f≤500Hz,f≥3KHz時,波紋在3dB內,采樣頻率fs為10KHz。
%要求採用巴特沃斯型模擬濾波器進行設計,畫出所設計濾波器的幅度特性曲線,並寫出其系統函數H(z)的表達式。 f和pi之間怎麼轉化呢?f≤500Hz,f≥3KHz這在程序中怎麼表示?求完整程序 急!!!
clear all
close all
clc

fs=10*1e+3;
fsl=1*1e+3;
fsh=2*1e+3;
% fpl=500;
fpl=800;
fph=3*1e+3;
alphal=18;
alphah=3;

ws1=fsl/fs;
ws2=fsh/fs;
wp1=fpl/fs;
wp2=fph/fs;
wp=[wp1 wp2];
ws=[ws1 ws2];
[n,Wn] = buttord(wp,ws,alphah,alphal);
[z,p,k] = buttap(n);
b=poly(z);
a=poly(p);
Wo=sqrt(2*pi*fpl*2*pi*fph);
Bw=2*pi*fph-2*pi*fpl;
[bt,at] = lp2bs(b,a,Wo,Bw)
[numd,dend] = bilinear(bt,at,fs)
[H,w]=freqz(numd,dend);
plot(w/pi*fs/2,abs(H))
grid

9. 利用雙線性變換及BW型模擬濾波器設計一個濾IIR帶同數字濾波器 利用MATLAB實現的程序代碼以及增益響應圖

取雙線性變換的參數T=2
1)由w=tan(W/2)獲得模擬帶通濾波器的頻率指標。
wp2 =1.1708, wp1 =0.8541, ws2 =1.3764, ws1 =0.7265
2) 確定變換式中的參數
B = wp2- wp1 =0.3168 w0 =sqrt(wp2 wp1)=1;
3)由ω′ =(ω²-ω0²)/Bω確定歸一低通濾波器的阻帶參數
ω′s1=-2.0515 ω′s2=2.0515
取:ω′s=2.0515
4)確定歸一化BW低通濾波器
由 N=buttord(1,ws,Ap,As,'s');
得 N=2
HL0(s)=1/(s²+2½s+1)
5)由變換獲得模擬帶通濾波器
Habp(s)=0.1003S²/(S¹+³+0.448S³+2.1003S²+0.448S+1)
6)由雙線性變換獲得數字帶通濾波器
[b,a]=bilinear(bBP,aBP,0.5)
HBP(Z)=(0.020083-0.040167Z-²+0.020083Z-¹-³)/(1+1.561Z-²+0.64135Z-¹-³)

閱讀全文

與雙線性過濾matlab相關的資料

熱點內容
業主戶內污水反冒是物業責任嗎 瀏覽:583
怎麼投訴洗砂廠排放污水 瀏覽:350
琉璃瓦與樹脂瓦哪個好 瀏覽:610
排污水一晚上能排多少 瀏覽:490
四個介面的反滲透怎麼安裝 瀏覽:602
怎麼改變空氣凈化器的濾網 瀏覽:741
年產一萬噸純凈水機器多少錢 瀏覽:236
單缸四輪車液壓提升器 瀏覽:167
洗衣機過濾網 瀏覽:120
tds低有水垢 瀏覽:132
污水提升泵應急方案 瀏覽:455
漢斯頓13怎麼重置濾芯 瀏覽:331
超純水設備的出水標準是什麼 瀏覽:762
水性漆廢水處理 瀏覽:166
雞蛋白醋製作半透膜 瀏覽:866
電離子去疣後如何護理吃啥葯 瀏覽:978
火腿加工廠熬肉廢水如何處理 瀏覽:777
大虎山鎮污水處理廠 瀏覽:684
蒸餾酒純喝 瀏覽:753
耐海水乙烯基酯樹脂 瀏覽:218