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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

双线性映射matlab,[Matlab]双线性变换法设计数字带通滤波器

發布時間:2023/12/31 循环神经网络 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 双线性映射matlab,[Matlab]双线性变换法设计数字带通滤波器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

測試代碼:

%%****bin_bp.m*******************%%

%% 使用雙線性變換法設計帶通濾波器

%% 2018年6月13日 16:30:34

%% author:Alimy

close all;

clear;

clc;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%代碼正文

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%給定數字濾波器指標

f_sl = 150 ; %阻帶下限頻率(Hz)

f_1 = 200 ; %通帶下限頻率(Hz)

f_3 = 500 ; %通帶上限頻率(Hz)

f_sh = 600 ; %阻帶上限頻率(Hz)

R_p = 0.5 ; %通帶允許的最大衰減

R_s = 40 ; %阻帶允許的最小衰減

f_s = 2000 ; %采樣頻率

T_s = 1 / f_s ; %采樣間隔

%1.將數字帶通濾波器的頻率參數變換為歸一化的數字角頻率參數

omega_sl = 2 * pi * f_sl / f_s; %阻帶下限頻率

omega_1 = 2 * pi * f_1 / f_s; %通帶下限頻率

omgea_3 = 2 * pi * f_3 / f_s; %通帶上限頻率

omega_sh = 2 * pi * f_sh / f_s; %阻帶上限頻率

%2.預畸變處理,將歸一化數字角頻率參數變換成模擬帶通濾波器的角頻率參數

C = 2*f_s ;

Omega_sl = C * tan( omega_sl / 2 );

Omega_1 = C * tan( omega_1 / 2 );

Omega_3 = C * tan( omgea_3 / 2 );

Omega_sh = C * tan( omega_sh / 2 );

%3.對模擬帶通濾波器的角頻率參數做歸一化處理

Omega_BW = Omega_3 - Omega_1;

eta_sl = Omega_sl / Omega_BW;

eta_1 = Omega_1 / Omega_BW;

eta_3 = Omega_3 / Omega_BW;

eta_sh = Omega_sh / Omega_BW;

%4.設計歸一化模擬濾波器,得到歸一化模擬帶通濾波器的轉移函數

Omega_p = [ Omega_1 , Omega_3 ];

Omega_s = [ Omega_sl , Omega_sh ];

[ N , Wn ] = buttord( Omega_p , Omega_s , R_p , R_s , 's' ); %選擇模擬巴特沃斯濾波器的最小階數

[ Bs, As ] = butter(N,Wn,'s');

%5.利用模擬帶通濾波器的轉移函數確定IIR數字濾波器的轉移函數

[ bz , az ] = bilinear(Bs,As,f_s);

figure(1);

freqz(bz,az);

title('帶通濾波器幅度譜和相位譜特性');

%濾波效果測試

N = 1000;

t = [ 0 : N - 1 ] * T_s ;

f1 = 50;

f2 = 100;

f3 = 300;

x1 = 2*1*sin( 2 * pi * f1 * t );

x2 = 2*2*sin( 2 * pi * f2 * t );

x3 = 2*1*sin( 2 * pi * f3 * t );

x = x1 + x2 + x3;

fft_x = fft( x );

X_mag = fftshift( abs ( fft_x ) ) / N ;

X_ang = fftshift( angle ( fft_x ) );

delta_f = f_s/N;

f = ( -N / 2 : N / 2 - 1 )*delta_f;

figure(2);

subplot(3,1,1);

plot(t,x);

title('原信號時域波形');

xlabel('t(s)');

subplot(3,1,2);

plot( f , X_mag );

title('原信號幅度譜');

xlabel('f(hz)');

subplot(3,1,3);

plot( f , X_ang );

title('原信號相位譜');

xlabel('f(hz)');

%濾波

lp_x = filter( bz , az , x );

lp_fft_x = fft( lp_x );

lp_X_mag = fftshift( abs ( lp_fft_x ) ) / N ;

lp_X_ang = fftshift( angle ( lp_fft_x ) );

figure(3);

subplot(3,1,1);

plot(t,lp_x);

title('濾波后信號時域波形');

xlabel('t(s)');

subplot(3,1,2);

plot( f , lp_X_mag );

title('濾波后信號幅度譜');

xlabel('f(hz)');

subplot(3,1,3);

plot( f , lp_X_ang );

title('濾波后信號相位譜');

xlabel('f(hz)');

效果:

濾波器特性:

待濾波的信號:

濾波后的信號:

總結

以上是生活随笔為你收集整理的双线性映射matlab,[Matlab]双线性变换法设计数字带通滤波器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。