samp6_9.m
来自「数字信号处理的Matlab实现的随书光盘」· M 代码 · 共 24 行
M
24 行
%Samp6_9
Fs=1000; %采样频率
wp=[100 200]*2/Fs; %通带边界频率(归一化频率)(6-20式)
ws=[50 250]*2/Fs; %阻带边界频率(归一化频率)(6-20式)
Rp=1;Rs=30;Nn=128; %通带波纹和阻带衰减以及绘制频率特性的数据点数
[N,Wn]=cheb1ord(wp,ws,Rp,Rs);%求得数字滤波器的最小阶数和归一化截止频率
[b,a]=cheby1(N,Rp,Wn); %按最小阶数、通带波纹和截止频率设计数字滤波器
figure(1)
[H,f]=freqz(b,a,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)
f1=30;f2=100;f3=270; %输入信号的三种频率成分
N=100; %输入信号的数据点数
dt=1/Fs;n=0:N-1;t=n*dt; %时间序列
x=sin(2*pi*f1*t)+0.3*cos(2*pi*f2*t)+0.1*sin(2*pi*f3*t); %输入信号
subplot(2,1,1),plot(t,x),title('输入信号') %绘制输入信号
y=filtfilt(b,a,x); %对输入信号进行滤波
subplot(2,1,2),plot(t,y) %绘制输出信号
ylim([-0.2 0.3])
title('输出信号'),xlabel('时间/s')
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?