?? fir(可用).txt
字號:
clear;clc;
%% 由于每次的噪聲不同,所以效果還是有些差異的。
%% 無限長
%% 優點:低階可獲得高選擇性,設計簡單,有表可查
%% 缺點:必須采用遞歸結構,調整復雜,速度慢,線性相位較差,波形前斷失真,濾波效果不好。
%% 適應范圍:語言通訊
%% 有限長
%% 優點:線性相位好,濾波速度快(fft),非遞歸結構,誤差低。
%% 缺點:高階才能獲得高選擇性,信號延時大,設計必須要程序實現,無表可查。
%% 適用范圍:圖像信號處理,數據傳輸
% 1.信號噪聲產生
N=256; % 長度
f=50; % 信號頻率
Ts=1/800; % 采樣周期
% 信號
p=1:N;
y=sin(2*pi*f*p*Ts);
% 噪聲
y_noise=y+0.8*randn(1,N);
figure(1);
subplot(2,1,1);
plot(y);
title('信號');
subplot(2,1,2);
stem(abs(fft(y)));
title('信號譜');
figure(2);
subplot(2,1,1);
plot(y_noise);
title('信號噪聲');
subplot(2,1,2);
stem(abs(fft(y_noise)));
title('信號噪聲譜');
% 2.IIR濾波器設計
%% 無限長(Elliptic)
%% 帶通濾波器,通帶f-f1hz~f+f1hz,阻帶f+f2hz~f-f2hz
%% 以半抽樣頻率歸一化
%% f1,f2,alphap,alphas必須調整
f1=10; % 通帶間隔
f2=15; % 阻帶間隔
alphap=1; % 通帶紋波
alphas=60; % 阻帶衰減
[n_iir,Wn_iir]=ellipord([f-f1 f+f1]*2*Ts,[f-f2 f+f2]*2*Ts,alphap,alphas); % 獲得階數
[biir,aiir]=ellip(n_iir,alphap,alphas,Wn_iir); % 獲得濾波器系數
% 3.濾波開始
y_iir=filter(biir,aiir,y_noise);
figure(3);
subplot(2,1,1);
plot(y_iir);
title('無限長濾波后信號');
subplot(2,1,2);
stem(abs(fft(y_iir)));
title('無限長濾波后信號的譜');
% 4.FIR濾波器設計
%% 有限長(窗函數線性相位)
%% 帶通濾波器,通帶f-f3hz~f+f3hz
%% 以半抽樣頻率歸一化
%% f3,N_fir必須調整
f3=3; % 通帶間隔
Wn_fir=[f-f3,f+f3]*2*Ts; % 歸一化通帶
N_fir=80; % 濾波器長度(一般較高)
bfir=fir1(N_fir,Wn_fir,'bandpass'); % 獲得濾波器系數
% 5.濾波開始
%% 用圓周卷效果更好
y_fir=conv(bfir,y_noise); %%卷積
y_fir=wkeep(y_fir,length(y)); %%保持(保持與源信號長度一樣)
figure(4);
subplot(2,1,1);
plot(y_fir);
title('有限長濾波后信號');
subplot(2,1,2);
stem(abs(fft(y_fir)));
title('有限長濾波后信號的譜');
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -