信号处理

为信号,图像和视频处理领域的艺术和科学从业者提供的问答

7
在哪里可以获得Parks-McClellan最佳FIR滤波器设计算法的开源实现?
背景:通常,我在执行某种信号处理任务,需要一个唯一的滤波器。通常在这一点上,我进入MATLAB并使用生成一个新的唯一过滤器。MATLAB 函数实现了该Parks-McClellan算法。现在,我有了一个过滤器,并将该过滤器放入一个硬编码的数组中。但是,这里的问题是我现在有一个仅适用于一种情况的硬编码过滤器。˚F 我- [R p 米()firpm()\tt firpm()firpm() 问题:我现在可以解决信号处理问题,但仅适用于非常特殊的单采样率或特殊情况。 目标:我希望能够调用˚F 我- [R p 米()firpm()\tt firpm()从C代码或其他某种语言并使我的信号处理代码更通用。我找不到的开源实现firpm()! 在哪里可以获得Parks-McClellan最佳FIR滤波器设计算法(在MATLAB中又称为开源实现?˚F 我- [R p 米()firpm()\tt firpm() PS我知道我可以使用开窗或其他方式设计不同的过滤器...请在评论中随意提及。但是,这个问题的重点不是要问“还有什么其他的滤波器设计技术?” 关键是找到非常有用的开源实现˚F 我- [R p 米()firpm()\tt firpm() ...或类似的东西。 PPS这个问题的目标之一是通过首先查看代码来学习Parks-McClellan算法的工作原理,然后计划阅读一些背景知识。

2
如何计算对数间隔的功率谱?
我想计算一个功率频谱,其中频率以对数间隔分布。 在韦尔奇(Welch)的方法中,要在所得功率谱的频率分辨率和平均值(即结果误差)之间进行权衡。我希望这种权衡是动态的,即对低频点进行较少的平均值计算,以便在低频下获得更好的分辨率。 有标准的方法吗? 我想一种方法是首先pwelch以非常高的分辨率(较低的平均数)进行处理,然后使用对数合并重新合并结果频谱。
20 dft 

2
如何解释MFCC提取过程中的DCT步骤?
在大多数音频处理任务中,最常用的转换之一是MFCC(梅尔频率倒谱系数)。 我最了解MFCC背后的数学原理:我了解滤波器组步骤和梅尔频率定标。 我没有得到的是DCT(离散余弦变换)步骤:在此步骤中我可以获得什么信息?此步骤的视觉效果如何?

2
现实中独立且不相关的数据的示例,以及测量/检测它们的方法
我们总是听到有关此数据向量VS的另一数据向量彼此独立或不相关等信息的信息,尽管很容易就这两个概念进行数学讨论,但我想将它们结合为实际的示例生活,并找到衡量这种关系的方法。 从这个角度出发,我正在寻找具有以下组合的两个信号的示例:(我将从一些内容开始): 独立且(必要)不相关的两个信号: 在讲话时,来自汽车发动机的噪声(称为)和声音()。v1[n]v1[n]v_1[n]v2[n]v2[n]v_2[n] 记录每天的湿度()和道琼斯指数()。v1[n]v1[n]v_1[n]v2[n]v2[n]v_2[n] Q1)您如何测量/证明它们与手中的两个向量无关?我们知道独立性意味着它们pdf的乘积等于它们的联合pdf,这很好,但是有了这两个向量,如何证明它们的独立性? 两个信号不是独立的,但是仍然不相关: Q2)我在这里想不到任何示例...一些示例是什么?我知道我们可以通过对两个这样的向量进行互相关来测量相关性,但是我们如何证明它们也不是独立的呢? 两个相关的信号: 一种矢量,用于测量主厅歌剧院歌手的声音,而有人则在建筑物内某处(例如在排练室())记录其声音。v1[n]v1[n]v_1[n]v2[n]v2[n]v_2[n] 如果您连续测量汽车中的心率(),并且还测量了撞击在后挡风玻璃上的蓝光的强度( ...),我想这些可能是非常相关的。 。:-)v1[n]v1[n]v_1[n]v2[n]v2[n]v_2[n] Q3)与q2有关,但是从此经验角度衡量互相关的情况下,查看这些矢量的点积是否足够(因为这是它们互相关的峰值)?为什么我们要关心交叉校正函数中的其他值? 再次感谢,给出更多的例子可以更好地建立直觉!

3
白高斯噪声的方差
这似乎是一个简单的问题,毫无疑问,但这是一个问题,但我正在尝试计算高斯白噪声的方差,而没有任何结果。 加性高斯白噪声(AWGN)的功率谱密度(PSD)为而自相关为,那么方差是无限的吗?N02ñ02\frac{N_0}{2}N02δ(τ)N02δ(τ)\frac{N_0}{2}\delta(\tau)

2
用文字描述逆短时傅立叶逆变换算法
我试图从概念上理解将正向和反向短时傅立叶变换(STFT)应用于离散时域信号时发生的情况。我找到了Allen和Rabiner(1977)的经典论文,以及Wikipedia的文章(链接)。我相信,还有另一个好文章被发现在这里。 我对计算Gabor变换感兴趣,这无非是带有高斯窗口的STFT。 这是我对前向 STFT的了解: 从信号中选择一个子序列,该子序列由时域元素组成。 使用时域中的逐点乘法,将子序列乘以窗口函数。 使用FFT将相乘的子序列带入频域。 通过选择连续的重叠子序列,并重复上述过程,我们得到了一个具有m行n列的矩阵。每一列是在给定时间计算的子序列。这可以用于计算频谱图。 但是,对于逆 STFT,论文讨论了重叠分析部分的求和。我发现可视化这里发生的事情非常具有挑战性。为了能够计算反 STFT(如上所述,按逐步顺序),我必须做什么? 前向STFT 我创建了一个图,显示了我认为前向STFT正在进行的工作。我不了解的是如何组装每个子序列,以便获得原始时间序列。有人可以修改此图形或给出一个方程式来显示如何添加子序列吗? 逆变换 这是我对逆变换的了解。使用IFFT将每个连续的窗口带回到时域。然后,将每个窗口移动步长,然后将其添加到上一个移动的结果中。下图显示了此过程。相加的输出是时域信号。 代码示例 下面的Matlab代码生成一个合成的时域信号,然后测试STFT过程,证明在数值舍入误差内,逆是正向变换的对偶。信号的开始和结尾都进行零填充,以确保窗口的中心可以位于时域信号的第一个和最后一个元素。 ñ+ N0− 1ñ+ñ0-1个N + N_0 - 1ñ0ñ0N_0 % The code computes the STFT (Gabor transform) with step size = 1 % This is most useful when modifications of the signal is required in …


3
如何实现数字振荡器?
我有一个浮点数字信号处理系统,它使用x86-64处理器以每秒样本的固定样本速率运行。假设DSP系统被同步锁定在任何问题上,那么在某个频率实现数字振荡器的最佳方法是什么?ffs=32768fs=32768f_s = 32768fff 具体来说,我想生成信号: 其中,对于样本编号, 。吨= ñ / ˚F 小号 Ñy(t)=sin(2πft)y(t)=sin⁡(2πft)y(t) = \sin(2\pi f t)t=n/fst=n/fst=n/f_snnn 一种想法是跟踪矢量,在每个时钟周期我们旋转角度。Δ φ = 2 π ˚F / ˚F 小号(x,y)(x,y)(x,y)Δ φ = 2 πF/ fsΔϕ=2πf/fs\Delta\phi = 2\pi f/f_s 作为Matlab伪代码实现(真正的实现在C中): %% Initialization code f_s = 32768; % sample rate [Hz] f = 19.875; % some constant frequency …

4
从频谱图重建音频信号
我有一组歌曲,使用重叠频率为50%的汉明窗提取了幅度谱图。提取频谱图后,我使用主成分分析(PCA)进行了降维。将其降低到较低的维度后,我从较低的维度重构了频谱图。因此,现在,原始频谱图和重建频谱图之间将出现一些错误。我想将此频谱图转换回音频信号并播放它,这样我就能知道从较低尺寸重建时的声音声音。 Matlab中有可用的功能吗?将幅度频谱图转换为音频信号

4
如何模仿/复制/伪造某人的声音?
是否有任何现有的应用程序可以对某人的声音进行采样,然后使用它来调制其他声音或合成类似于原始声音的文本? 例如,此AT&T的“文本到语音”演示使您可以从预设中选择一种语音和一种语言,我猜这些预设是基于已采样的某些人类语音的。 您如何称呼这个过程?是语音调制吗?语音合成?
19 modulation  voice 

2
使用Goertzel算法实际上能提供更好的频率分辨率吗?
我正在阅读本文,而作者对于Goertzel算法对“频率分辨率”的广泛使用使我有些困惑。 基本问题:使用Goertzel算法实际上是否可以在特定的目标频段上为您提供更高的频率分辨率,还是仅在指定的目标频段上仅有效地计算FFT,但以采样频率除以数字指定的相同频率分辨率即可样本? 例如,假设为100 KHz(固定),数据采样数为10000(也固定)。如果我计算正常的FFT,其中FFT长度也是,那么我的频率分辨率就可以预期为,它将等于10 Hz。这意味着我的垃圾箱间隔了10 Hz,从-50,000 Hz到50,000 Hz。FsFsF_sññNññNFsñFsñ\frac{F_s}{N} 现在让我们说我想使用Geortzel算法仅查看例如20,000-21,000 Hz范围内的频率。如果我用同样的的样本数量,并使用相同的我的FFT的大小,那么什么是我的频率分辨率?还是10 Hz?还是 Hz?ññNññN21 ,000 - 20 ,00010000= 0.121,000-20,00010000=0.1\frac{21,000-20,000}{10000} = 0.1 我有一种感觉,我并没有像通过从0到50,000那样使用相同的 in来评估从21,000到20,000的频率,而是在主瓣上简单地插值,实际上并没有真正提高我的频率分辨率。ññN 这是正确的理解吗?

3
帮助了解霍夫变换
我正在尝试让霍夫(Hough)变换在MATLAB中工作,但出现了问题。我有一个非常糟糕的方法来检测需要修复的峰,但是在此之前,我需要能够反转霍夫变换以再次正确地创建线条。这是我现在得到的东西类型: 看起来好像旋转了90度,但我不确定为什么。我不确定是因为我在霍夫(Hough)空间错了,还是因为我取消了霍夫(Hough)并划清界限的方式。还可以有人帮助改善我的峰值检测吗?代码中使用的图像在这里 %% load a sample image; convert to grayscale; convert to binary %create 'x' image (works well) a = eye(255); b = flipud(eye(255)); x = a + b; x(128,128) = 1; %image = rgb2gray(imread('up.png')) < 255; %image = rgb2gray(imread('hexagon.png')) < 255; %image = rgb2gray(imread('traingle.png')) < 255; %%% these work …

6
什么是Walsh-Hadamard变换?它有什么用?
我正在尝试自学有关WHT的知识,但在线上似乎没有很多很好的解释。我想我已经找到了如何计算WHT的方法,但是我实际上是在试图理解为什么WHT在图像识别领域中被认为有用。 它有什么特别之处?在经典傅立叶变换或其他小波变换中不会出现的信号中,它具有什么特性?为什么对物体识别有用指出,在这里?


3
卡尔曼滤波器的输入是否应该始终是信号及其导数?
我总是看到卡尔曼滤波器与此类输入数据配合使用。例如,输入通常是一个位置和相应的速度: (x,dxdt)(x,dxdt) (x, \dfrac{dx}{dt}) 就我而言,每个采样时间只有2D位置和角度: Pi(xi,yi)and(α1,α2,α3)Pi(xi,yi)and(α1,α2,α3) P_i(x_i, y_i) \qquad \text{and} \qquad (\alpha_1, \alpha_2, \alpha_3) 我是否应该为每个点和每个角度计算速度以适合Kalman框架?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.