appl7_3.m

来自「数字信号处理的Matlab实现的随书光盘」· M 代码 · 共 33 行

M
33
字号
%Appl7_3
%用FIR数字滤波器实现对数字信号的滤波
load grbx3.txt                %读取数据序列
Xt=grbx3;                     %把数据赋值给变量
Fs=50;                        %设定采样率
dt=1/Fs;                      %计算采样间隔
n=1:length(Xt);
Nn=length(Xt);                 %序列长度
t=n/Fs;                        %时间序列
Fcs1=3;  Fcs2=23;   %设置的通带和阻带边界频率,
Ws1=Fcs1/(Fs/2);  Ws2=Fcs2/(Fs/2);              %转换为标准频率
Wn=[Ws1 Ws2];                    %通带、阻带频率(为标准频率)
N=400;           %滤波器阶数为400
pa=(N-1)/2/Fs;                 %计算相位延迟
b=fir1(N,Wn,'stop');           % 设计FIR带阻滤波器
figure(1);
[H,f]=freqz(b,1,Nn,Fs);    %求出滤波器幅频相频特性
subplot(2,1,1),plot(f,20*log10(abs(H)))
xlabel('频率/Hz');ylabel('振幅/dB');grid on;
subplot(2,1,2),plot(f,180/pi*unwrap(angle(H)))
xlabel('频率/Hz');ylabel('相位/^o');grid on;
figure(2);
subplot(2,1,1),plot(t,Xt);          %绘制原始波形序列
xlabel('时间/s');ylabel('振幅');title('滤波前信号') 
grid on;

Yt=filter(b,1,Xt);                  %对信号进行滤波
t=t-pa;                            %计算相位延迟
subplot(2,1,2),plot(t,Yt);           %绘制滤波后波形序列
ylim([-600 200])
xlabel('时间/s');ylabel('振幅');title('滤波后信号');
xlim([0 max(t)+1]);grid on;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?