内容发布更新时间 : 2025/1/11 17:07:46星期一 下面是文章的全部内容请认真阅读。
数字滤波器及切比雪夫滤波器matlab程序
数字信号频谱理解
数字信号没有固定的频率,应该首先规定一个抽样频率,即信号的最高频率fm的二倍,然后求信号的频率。
%% 数字信号的频谱理解程序示例 clear clc
x = ones(1,100); for i = 1:2:99 x(i) = -1; end
fs = 100; %规定抽样频率即规定信号的最高频率fm的二倍
X=fft(x,512); %信号的傅里叶变换返回512个点两个周期即最高频率fs f=(0:255)/256*(fs/2); %画图只画到fm 即只画一个周期的频谱图 plot(f,abs(X(1:256)')); %频谱图 xlabel('频率(Hz)'); ylabel('幅值'); title('信号频率'); grid;
Filter和impz简介
分别用filter(滤波函数filter(b,a,x))及impz函数获取指定离散系统(b=[0 0.5 0.3 0.2]),a=a=[1 0.2 0.4 -0.8])的单位抽样响应;用freqz函数获取系统的频率响应;分别用root及zplane函数获取系统的零极点图及增益。
程序代码:
a_2_SignalProcess.m文件源代码
%Matlab常用信号分析处理函数演示实例:编写一个M文件,分别用filter及impz函数获取指定离散系统
%(b=[0.8 0.5 0.6],a=[1 0.2 0.4 -0.8])的单位抽样响应;用freqz函数获取系统的频率响应;分
%别用root及zplane函数获取系统的零极点图及增益。
L=128; %单位抽样序列的长度 Fs=1000; %采样频率为1KHz
b=[0.8 0.5 0.6]; %系统函数的分子系数向量 a=[1 0.2 0.4 -0.8]; %系统函数的分母系数向量 delta=[1 zeros(1,L-1)]; %生成长度为L的单位抽样序列
FilterOut=filter(b,a,delta); %filter函数获取单位抽样响应 ImpzOut=impz(b,a,L); %impz函数获取单位抽样响应 [h,f]=freqz(b,a,L,Fs); %freqz函数求频率响应 mag=20*log(abs(h))/log(10); %幅度转换成dB单位 ph=angle(h)*180/pi; %相位值单位转换 zr=roots(b) %求系统的零点,并显示在命令窗口 pk=roots(a) %求系统的极点,并显示在命令窗口 g=b(1)/a(1) %求系统的增益,并显示在命令窗口 %绘图 figure(1);
subplot(221);stem(FilterOut);
title('filter()获取单位抽样响应','fontsize',8); subplot(222);stem(ImpzOut);
title('impz()获取单位抽样响应','fontsize',8); subplot(223);plot(f,mag); xlabel('频率(Hz)','fontsize',8); ylabel('幅度(dB)','fontsize',8); title('freqz()幅频响应','fontsize',8); subplot(224);plot(f,ph); xlabel('频率(Hz)','fontsize',8); ylabel('相位(度)','fontsize',8); title('freqz()相频响应','fontsize',8); figure(2);
freqz(b,a); %用feqz函数绘制系统频率响应 title('freqz()自动绘制的频率响应图','fontsize',14); figure(3);
zplane(b,a);%用zplane函数绘制系统零极点图
title('zplane()自动绘制的系统零极点图','fontsize',14);
切比雪夫滤波器:
注:
freqs:频率响应函数频域滤波 filter:系统函数时域滤波 N:滤波器阶数 Wn:带宽 Wp:通带截止频率 Ws:阻带起始频率 Rp:通带波纹 Rs:阻带最小衰减
切比雪夫I型滤波器设计及滤波程序
? 实例程序:
%% 信号的产生 clear; clc; f1=5; f2=15; f3=30; N=100;
fs=60; %采样频率
n=(0:N-1); %采样点数为N x1=sin(2*pi*f1*n/fs); x2=sin(2*pi*f2*n/fs);
x3=sin(2*pi*f3*n/fs); %模拟信号转化为数字信号 x=x1+x2+x3; %信号叠加 % figure subplot(221);
plot(n,x); %作出时间-幅值图像 xlabel('时间(s)'); ylabel('幅值');
title('时域信号波形'); grid;
%% 低通滤波器设计 Wp=8;