MATLAB数字信号处理函数

本文介绍了MATLAB中用于数字信号处理的关键函数,包括FIR滤波器设计的fir1函数,频率响应的freqz和freqs,以及快速傅里叶变换 fft 和 ifft 的用法。内容涵盖了滤波器设计原理、频域分析和信号变换技巧。

MATLAB数字信号处理函数(自学笔记4)

笔者正在学习matlab的m函数,本文为学习笔记的其中之一。本文主要介绍数字信号处理相关的函数。



FIR滤波器设计 - fir1()

FIR滤波器设计函数,其定义如下

b = fir1(n, Wn)  %用汉明窗产生一个滤波器系数

n  -- 滤波器的阶数,默认汉明窗
Wn -- 频率,1个元素为低通滤波器,2个元素为带通滤波器,3个及以上为多频滤波器
   -- Wn = Flpf / (Fs /2 ), Fs为采样频率,Flpf为低通滤波器截止频率
b  -- 生成的滤波器系数

频率响应 - freqz()

求取离散系统频率响应特性的函数。其定义如下

[H,w] = freqz(B, A, N);    %N默认值为512
                           %默认区间 0 : pi
[H,w] = freqz(B, A, N, 'whole');    %主值区间 -pi : pi
[H,w] = freqz(B, A, [自定义区间]);    %[0 : 2*pi/n : 2pi]

B和A分别为离散系统的系统函数分子、分母多项式的系数向量;
N为正整数;
返回值H包含了离散系统频率响应 在 0 - pi 范围内N个频率等分点的值;
向量w则包含范围内N个频率等分点。

复频域响应 - freqs()

返回模拟滤波器H(jw)的复频域响应(拉普拉斯格式)

在这里插入图片描述

H = freqs(B, A, w);    %根据系数向量计算返回模拟滤波器的复频域响应。
                       %freqs计算在复平面虚轴上的频率响应H,
                       %角频率w确定了输入的实向量,因此必须包含至少一个频率点
[H,w] = freqs(B, A);    %自动挑选200个频率点来计算复频域频率响应H
[H,w] = freqs(B, A, f);    %挑选f个频率点来计算复频域频率响应H

布莱克曼窗 - blackman()

产生一个布莱克曼窗

Windows = blackman(N);    %产生一个长度为N的布莱克曼窗

快速傅里叶变换 - fft()

语法

Y = fft(X)
Y = fft(X,n)
Y = fft(X,n,dim)

说明

Y = fft(X)

Y = fft(X) 用快速傅里叶变换 (FFT) 算法计算 X 的离散傅里叶变换 (DFT)。

  • 如果 X 是向量,则 fft(X) 返回该向量的傅里叶变换。

  • 如果 X 是矩阵,则 fft(X) 将 X 的各列视为向量,并返回每列的傅里叶变换。

  • 如果 X 是一个多维数组,则 fft(X) 将沿大小不等于 1 的第一个数组维度的值视为向量,并返回每个向量的傅里叶变换。

Y = fft(X,n)

Y = fft(X,n) 返回 n 点 DFT。如果未指定任何值,则 Y 的大小与 X 相同。

  • 如果 X 是向量且 X 的长度小于 n,则为 X 补上尾零以达到长度 n。

  • 如果 X 是向量且 X 的长度大于 n,则对 X 进行截断以达到长度 n。

  • 如果 X 是矩阵,则每列的处理与在向量情况下相同。

  • 如果 X 为多维数组,则大小不等于 1 的第一个数组维度的处理与在向量情况下相同。

Y = fft(X,n,dim)

Y = fft(X,n,dim) 返回沿维度 dim 的傅里叶变换。例如,如果 X 是矩阵,则 fft(X,n,2) 返回每行的 n 点傅里叶变换。

快速傅里叶反变换 - ifft

语法

X = ifft(Y)
X = ifft(Y,n)
X = ifft(Y,n,dim)
X = ifft(___,symflag)

说明

X = ifft(Y) 使用快速傅里叶变换算法计算 Y 的逆离散傅里叶变换。X 与 Y 的大小相同。

  • 如果 Y 是向量,则 ifft(Y) 返回该向量的逆变换。

  • 如果 Y 是矩阵,则 ifft(Y) 返回该矩阵每一列的逆变换。

  • 如果 Y 是多维数组,则 ifft(Y) 将大小不等于 1 的第一个维度上的值视为向量,并返回每个向量的逆变换。

X = ifft(Y,n) 通过用尾随零填充 Y 以达到长度 n,返回 Y 的 n 点傅里叶逆变换。

X = ifft(Y,n,dim) 返回沿维度 dim 的傅里叶逆变换。例如,如果 Y 是矩阵,则 ifft(Y,n,2) 返回每一行的 n 点逆变换。

X = ifft(___,symflag) 指定 Y 的对称性。例如,ifft(Y,‘symmetric’) 将 Y 视为共轭对称。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值