AnyMath 文档

czt

啁啾Z-变换。

库::`工程师`

语法

函数调用

* [参数:y]=czt(<参数:x>>,<参数:m>>,<参数:w>>,<参数:a>>) -返回长度的线性调频Z变换(CZT) [参数:m] 的输入信号 [参数:x] 沿平面上的螺旋轮廓 ,由参数定义 [参数:w][参数:a] 在帮助下 z=[参数:a]*[参数:w]。^-(0:[参数:m]-1).

+ 具有的价值 [参数:m], [参数:w][参数:a] 默认函数为 *czt* 返回信号的Z变换 [参数:x][参数:m] 单位圆的等距点,相当于离散傅立叶变换(dft) x,由表达式指定 fft的(x).

争论

输入参数

# *x* — 输入信号

+ 向量资料 | 矩阵 | 三维阵列

Details

指定为矢量、矩阵或三维阵列的输入信号。 如果 x -矩阵,变换列的函数 x. 如果 x —一个三维数组,该函数与数组的第一维一起工作,其大小更大 1.

数据类型

漂浮物32, 漂浮64</无翻译> 支持复数::是

# *m*是 转换的长度

+ 长度(x) (默认情况下)| 正整数标量

Details

变换的长度,指定为正整数标量。

数据类型

漂浮物32, 漂浮64</无翻译>

# *w*是 螺旋轮廓的点之间的比率

+ exp(-2im*π/m) (默认情况下)| 复杂的标量

Details

螺旋轮廓的点之间的比率,定义为复数标量。

数据类型

漂浮物32, 漂浮64</无翻译> 支持复数::是

# *a*是 螺旋轮廓的起点

+ 1 (默认情况下)| 复杂的标量

Details

螺旋轮廓的起点,定义为复数标量。

数据类型

漂浮物32, 漂浮64</无翻译> 支持复数::是

输出参数

# *y* — 线性调频Z变换

+ 向量资料 | 矩阵

Details

线性调频Z是作为向量或矩阵返回的变换。

例子:

随机向量的CZT

Details

创建随机向量 x 长度 1013. 让我们使用函数计算它的DFT *czt*.

import EngeeDSP.Functions: randn, czt

using Random
Random.seed!(1234)

x = randn(1013, 1)
y = czt(x)

频率响应的窄带部分

Details

使用函数 *czt* 以增加滤波器的频率响应的窄带部分。

让我们设计一个低通FIR滤波器 30-th顺序,使用窗口方法。 设置采样频率 1 kHz和截止频率 125 赫兹。 我们使用矩形窗口。 让我们找到滤波器的传递函数。

import EngeeDSP.Functions: fir1, rectwin

fs = 1000
h = fir1(30, 125 / (fs/2), rectwin(31))

计算滤波器的DFT和CZT。 让我们将CZT的频率范围限制在从 75 以前 175 赫兹。 生成 1024 每种情况下的参考点。

import EngeeDSP.Functions: fft, czt

m = 1024
y = fft(h, m)

f1 = 75
f2 = 175
w = exp(-im &ast; 2π &ast; (f2 - f1) / (m &ast; fs))
a = exp(im &ast; 2π &ast; f1 / fs)
z = czt(h, m, w, a)

让我们构建转换图。 放大感兴趣区域。

fn = (0:m-1) ./ m
fy = fs .&ast; fn
fz = (f2 - f1) .&ast; fn .+ f1

plot(fy, abs.(y), label="FFT")
plot!(fz, abs.(z), label="CZT")
xlims!(50, 200)
xlabel!("Frequency (Hz)")

czt

算法

功能 *czt* 在给定线性调频轮廓[1]上计算Z变换时,使用长度等于2的下一个幂的FFT执行快速卷积。

文学作品

  1. Rabiner,Lawrence R.和Bernard Gold。 _数字信号处理的历史和应用。_恩格尔伍悬崖,NJ:普伦蒂斯-霍尔,1975.