?? fir數(shù)字濾波器設(shè)計實現(xiàn).txt
字號:
%FIR數(shù)字濾波器設(shè)計實現(xiàn)
clear all;
pi=3.1415926;
%讀取數(shù)字信號的數(shù)據(jù),打開名為"noise.txt"的信號數(shù)據(jù)文件
f_id=fopen('noise.txt','r');
[noise,count]=fscanf(f_id,'%f');
%提取時間量
j=1;
count1=count;
for i=1:2:count1
time(j)=nois(i);
j=j+1;
end
%提取幅度量
j=1;
for i=2:2:count1
nois_m(j)=100*nois(i);
j=j+1;
end
%坐標(biāo)時間變換
count2=length(time);
dd=(max(time)-min(time))/2;
for k=1:count2
time(k)=time(k)+dd;
end
%保存時域波形
nois1=[time;nois_m];
save noise.dat nois1 -ascii
X=nois1;
%畫出濾波前信號波形圖
plot(time,noise_m);
grid;
xlabel('時間/us');
ylabel('幅度');
n=35; %FIR濾波器階數(shù)
f=[0,0.01,0.1,1.0]; %FIR帶通濾波器邊界頻率參數(shù),0-0.001阻帶 0.001-0.1通帶 0.1-1.0阻帶
a=[0,1,0]; %描述濾波器的理想特性參數(shù),0-阻帶 1-通帶
up=[0.01,1.1,0.01]; %通帶、阻帶最大波動值
lo=[0,0.9,0]; %通帶、阻帶最小波動值
b=fircls(n,f,a,up,lo); %計算濾波器單位脈沖響應(yīng)h(n)
save b-firfilter.dat b -ascii; %保存h(n)
sig_filter1=1*fftfilt(b,nois_m); %實現(xiàn)FIR濾波,返回濾波后的信號
figure;
plot(time,sig_filter1);
sig_filter=[time,sig_filter1];
save sig_firfilter.dat sig_filter -ascii; %保存濾波后的信號
grid;
xlabel('時間/us');
ylabel('響應(yīng)幅度值');
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -