matlab在信号处理方面的应用

一、matlab验证定理

利用matlab的实验原理

无法选择FDAtools数字滤波器,因为通过乘法器得到的是模拟信号

电脑的模拟信号就是连续的图像也是通过描点之后使用plot函数连接得到的

如何得到一个周期的连续的FT或DTFT的图像,把DFT的采样点数尽量多,利用plot连接近似得到连续的FT图像

利用matlab验证时域采样定理

下面选定一个连续信号,计算在临界采样、过采样、欠采样三种不同条件下恢复信号的误差,从而验证时域采样定理。

利用matlab验证频域采样定理:

信号的有效采样点数(非零点)为M点,对信号x(n)做N点DFT再做N点IDFT
N1>M,对信号做N1点DFT再做N1点IDFT,就是原N1点信号,是对信号频域N1点等间隔采样
N2<M,对信号做N2点DFT再做N2点IDFT,就是原N2点信号,是对信号的截取但不混叠
N1>M,对信号做N1点DFT再做N2点IDFT(这里N1点DFT模拟连续频谱,N2点IDFT模拟对连续频谱的N2点等间隔采样),
结果如果N2>M,则信号不失真,N2<M则信号时域混叠失真,说明频域采样定理要满足采样点数大于信号有效点数

二、matlab设计数字滤波器

1.基础知识

两种滤波器:IIR滤波器、FIR滤波器
三种方式:典型设计、完全设计、simulink

传递函数(tf):
分母与分子s或z的多项式降幂排列
分子向量num
分母向量den

零极点增益(zp):
增益系数k
零点向量z
极点向量p

状态空间模型(ss):A,B,C,D

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.IIR滤波器设计

(1)典型设计(冲击响应不变法或双线性变换法)

在这里插入图片描述在这里插入图片描述在这里插入图片描述

例:设计IIR数字低通滤波(impinvar、bilinear)
例:设计IIR数字高通滤波(bilinear)

在这里插入图片描述buttord函数输入四个参数得到最小阶数和截止频率
buttap相当于查表得到零极点增益模型
zp2ss零极点增益模型转换为状态空间模型
lp2hp只有状态空间模型才能使用模拟低通向模拟高通的转变吗?
ss2tf状态空间模型转换成传递函数模型
bilinear双线性变换法实现模拟向数字的转变,返回传递函数模型
freqz求频率响应

(2)完全设计

例:设计IIR数字带阻滤波器

在这里插入图片描述ellipord:椭圆滤波器最小阶数和截止频率的确定函数
ellip:椭圆滤波器设计

3.FIR滤波器设计

FIR滤波器,N个点,阶数是N-1阶,h(0)到h(N-1)
FIR设计高通滤波器N要为奇数

在这里插入图片描述

例1:(典型设计)窗函数法设计FIR低通滤波器

在这里插入图片描述

%理想低通滤波器参数
M=21;%单位脉冲响应的长度,一般需要自己计算,本题题干给出
wc=pi/4;%设置通带截止频率	
n=0:M-1;
r=(M-1)/2;
nr=n-r+eps*((n-r)==0);
hdn=sin(wc*nr)/pi./nr; 	 % 计算理想低通单位脉冲响应hd(n)
if  rem(M, 2)~=0
     hdn(r+1)=wc/pi; 
end% M为奇数时,处理n=r点的0/0型
wn1=boxcar(M); 	     % 矩形窗
hn1=hdn.*wn1'; 	     % 加窗
subplot(2,1,1);stem(n, hn1, '.');
line([0,20], [0,0]);
xlabel('n'); ylabel('h(n)'); title('矩形窗设计的h(n)');
hw1=fft(hn1,512);    
w1=2*[0:511]/512;%求频谱
subplot(2,1,2), plot(w1, 20*log10(abs(hw1)))
xlabel('w/pi'), ylabel('幅度(dB)'); title('幅度特性(dB)');

在这里插入图片描述

例2:(完全设计fir1)窗函数法设计FIR低通滤波器

在这里插入图片描述

clc;
clear;
%hanning(28),返回27阶的汉明窗序列
hn = fir1(27, 0.2*pi,'low',hanning(28));
 n=0:27;
stem(n, hn, '.')
[h, w] = freqz(hn, 1, 256);
subplot(2,1,1);
plot(w/pi, 20*log10(abs(h)));%截止频率fs归一化为1
title('汉明窗设计FIR低通滤波器-幅频特性');
subplot(2,1,2);
plot(w, angle(h));
title('汉明窗设计FIR低通滤波器-相频特性');

在这里插入图片描述

例3:(完全设计fir1)窗函数法设计FIR高通滤波器

一个搞死人的问题:N的奇偶性

利用matlab工具箱函数fir1,设计线性相位FIR数字高通滤波器,要求通带截止频率为0.6πrad,阻带截止频率为0.45πrad,通带最大衰减为0.2dB,阻带最小衰减为45dB。分别选用汉宁窗、汉明窗、布莱克曼窗和凯塞窗进行设计,显示所设计滤波器的单位脉冲响应h(n)的数据,并画出幅频响应特性曲线和相频响应特性曲线,对每种窗函数的设计结果进行比较。

例4:(完全设计fir1)窗函数法设计FIR带通滤波器

在这里插入图片描述

%窗函数设计fir带通滤波器
wls = 0.2*pi; %低端阻带截止频率
wlp = 0.35*pi;%低端通带截止频率
whp = 0.65*pi;%高端通带截止频率
B = wlp - wls;%过渡带宽0.15*pi
N = ceil(12/0.15);%选择布莱克曼窗,除以过渡带宽,计算窗的长度
wc = [wlp/pi-6/N, whp/pi+6/N];%
hn = fir1(N-1, wc, blackman(N));%滤波器阶数窗的长度减1
n = 0:N-1;
subplot(2,1,1); 
stem(n, hn, '.');%sa函数序列经过窗函数处理之后的数字滤波器序列
[h, w] = freqz(hn, 1, 256);
subplot(2,1,2); 
plot(w/pi, 20*log10(abs(h)));
grid on;

在这里插入图片描述

4.FDATOOL与simulink设计数字滤波器

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值