Questions tagged «software-implementation»

与在软件环境和编程语言下实现各种算法有关的问题。

3
级联双二阶部分以实现高阶滤波器的工作原理?
我正在尝试实现8阶IIR滤波器,并且我阅读的每个应用笔记和教科书都说,最好将2阶以上的任何滤波器实现为二阶部分。我tf2sos在MATLAB中使用了二阶部分的系数,这与我预期的4个二阶部分的6x4系数有关。在实施为SOS之前,八阶滤波器需要存储7个先前的采样值(以及输出值)。现在,当实现为二阶部分时,流程如何从输入到输出工作,我是否仅需要存储2个先前的样本值?还是第一个滤波器的输出馈x_in入第二个滤波器,依此类推?
20 filters  filter-design  infinite-impulse-response  biquad  audio  image-processing  distance-metrics  algorithms  interpolation  audio  hardware  performance  sampling  computer-vision  dsp-core  music  frequency-spectrum  matlab  power-spectral-density  filter-design  ica  source-separation  fourier-transform  fourier-transform  sampling  bandpass  audio  algorithms  edge-detection  filters  computer-vision  stereo-vision  filters  finite-impulse-response  infinite-impulse-response  image-processing  blur  impulse-response  state-space  linear-systems  dft  floating-point  software-implementation  oscillator  matched-filter  digital-communications  digital-communications  deconvolution  continuous-signals  discrete-signals  transfer-function  image-processing  computer-vision  3d 

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算法的工作原理,然后计划阅读一些背景知识。

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 …

1
消除图像眩光
免责声明:我绝不从事信号处理。只是很好奇... ny问题非常简单:是否可以对图像进行软件处理以消除或减少前灯眩光? 这将是这样的图片: 如果可以,是否有可用的软件库?我不在乎哪种语言,我只想要功能。Slash有谁知道目前是否对此进行研究?

2
可调谐巴特沃思滤波器有任何标准的实现形式吗?
实现巴特沃思滤波器的标准方法之一是级联第二级部分,每个部分对应于一对复共轭极点。例如,对于四阶滤波器,将有两个二阶部分。如果我们考虑低通滤波器的极点位置在z平面上的变化,因为截止点设计为从0hz到Nyquist附近,则每对极点“扫出”的路径对应于单位圆内的一对弧,如下图所示[用于四阶滤波器]: 给定这些过滤器已经存在了多长时间,并且考虑到这些“弧”对应于s平面中的直线,这可以说是有人会开发出具有单个参数且能够扫极的实现形式在“运行时”(相对于“设计时”)沿弧线移动。但是,我还没有遇到过类似的事情。 提出各种方法的相对简单,尤其是在范围段内,并且愿意为此付出一点额外的计算。我想知道的是以下内容: 是否存在某种标准方法来实现给定阶数的可调谐[数字]巴特沃斯滤波器,即1)具有最佳属性(例如效率,鲁棒性),2)覆盖整个范围? 还是这真的是一个如此简单的问题,没人理会呢?如果是这样,似乎它将显示在“静态”设计选项旁边的过滤器设计程序中。 我确实发现了这一点:具有可变截止频率的多用途Butterworth滤波器,但是起初在Google搜索中,关于其中的内容似乎没有太多信息。 更新(回复:答案) 为了更清楚一点: 我正在寻找带有参数(例如[0,1]的参数)的“元设计”,该参数将自动调整从DC到Nyquist的截止(同时保持增益归一化),以用于时变系统。类似于此两极谐振器,但有Butterworth约束。想法是,计算参数比在运行时执行典型的脱机设计过程更有效。 我什至没有在寻找如何设计“元过滤器”(即用变量而不是数字进行数学运算),我想知道是否有标准[非显而易见]实现形式的选择,因为,也就是说,与静态情况相对应的直接方法最终会在时变情况下出现数字问题。 也许没有问题,而直接的方法就是实践中使用的方法。那太好了。我担心的是,在我查阅过的任何资料中,我都没有看到这个话题的明确提及,但是也许我只是错过了一些非常明显的东西,所以我问。 在这里添加更多细节的过程中,我遇到了对参数双二阶结构的一般处理,这几乎是我要寻找的(并且有一些不错的参考)。 更新2 我正在寻找与我在Jason R的第二条评论中输入的答案相同的答案,如下所示: “哦,是的,您想要以抽头状态格子形式使用某某论文中的参数化III-2b,因为它可以在使用最小数量的乘法的情况下解决某某边缘情况。” 也许没有类似的东西存在,但是我的问题是它是否存在,如果存在,它是什么,或者在哪里可以找到它? 头奖 根据提姆·韦斯科特(Tim Wescott)在Jason R的答案中的comp.dsp线程中给出的“观察者规范形式”的引用,我决定假设我可能必须开始研究控制系统文献,因此我尝试进行搜索Butterworth“状态空间”,它发现了以下非常酷的设计/实现方法,不仅是参数化的Butterworth,而且还有Chebyshev和Elliptic过滤器: Sophocles J. Orfanidis,“高阶数字参数均衡器设计”,J。Audio Eng。SOC。卷 53,第1026-1046页,2005年11月。 论文:http : //www.ece.rutgers.edu/~orfanidi/ece348/hpeq.pdf Matlab工具箱:http : //eceweb1.rutgers.edu/~orfanidi/hpeq/ 可能需要花一些时间才能深入研究,但是根据我到目前为止所读的内容,如果不是我想要的内容,我会感到非常惊讶。我将此内容提供给Jason R,作为comp.dsp参考,使我了解了Orfanidis论文。他的答案也是设计巴特沃斯滤波器的实用指南。

2
系统识别包
我一直在寻找Matlab的System Identification Toolbox的替代方案,但是术语“ system”和“ identification”的通用性使搜索感到困惑。 是否有为此目的编写的独立库?(在C ++,C#,Python等中)

3
非EE软件API上下文中的“低通滤波器”
我是一位经验丰富的软件工程师,正在研究智能手机传感器。我已经学习了DSP的基础EE课程,并正在尝试运用我的知识。我相信我了解卷积,传递函数,z变换等。我对FIR和IIR滤波器有所了解。 现在,当阅读软件API和文档时,我看到人们正在将LPF应用于时域中的传感器数据。我知道您可以通过使用差分方程式来做到这一点(例如y [i] = y [i-1] + 2 * x [i]),但是我在EE类中了解到LPF通常通过卷积运算来应用您可以将时间信号与正弦波的系数(例如)和特定的截止频率进行卷积。因此,“低通滤波器”的口语用法对我来说还不够准确。 例如,Google Android API具有以下文档:http : //developer.android.com/reference/android/hardware/SensorEvent.html#values public void onSensorChanged(SensorEvent event) { // alpha is calculated as t / (t + dT) // with t, the low-pass filter's time-constant // and dT, the event delivery rate final float alpha = 0.8; …

5
何时考虑音频的双精度(64位)浮点
在现代处理器上合成和处理音频时,何时会考虑使用单精度(32位)浮点以外的其他东西?显然,进出现实世界的音频是16/24位,所以我只是在谈论软件中信号的精度(包括音频本身和诸如滤波器系数之类的东西)。 假使,假设: CPU / DSP具有对单精度和双精度的硬件浮点支持 优先考虑的是高质量音频,而不是高性能。例如,如果双精度可提供更好的(感知)质量,则将考虑采用双精度。

4
有关指数ADSR包络的方程式的帮助
通过应用代码,我实现了线性ADSR包络,用于调整振荡器输出的幅度。攻击,衰减和释放持续时间以及延音水平的参数可以在包络上设置,并且一切都会按预期进行。 但是,我想将包络线的斜坡形状调整为类似于大多数合成器用于更自然响应的方式:反指数乘以攻击,指数乘以衰减和释放。我无法正确计算公式来计算这些类型的斜坡形状的包络输出值。为了计算线性斜坡,我使用两点形式,插入从起音/衰减/持续/释放输入参数值得出的开始/结束 / y值。我似乎无法使用相同的起点/终点x / y点值来为指数(标准和反向)斜坡制定正确的公式。XxxÿyyXxxÿyy 我保存了一个Desmos Graphing Calculator会话,该会话演示了我上面描述的线性渐变方法。 如果有人能帮助我指出正确的方向,将不胜感激。

1
关于第二代小波的教程(带提升功能)?
对于一些去噪和去卷积实验,我想对图像应用第二代小波变换(使用提升步骤)。 我知道有几种实现方式,但是其中大多数都使用matlab,而我想使用OpenCV在C ++中工作。由于OpenCV 2.x中没有内置的小波变换实现,因此我计划自己实现(另外,它将对我有好处)。经过研究,我已经找到了有关第二代转换的原始文章,但是我对算法的确切工作方式仍然感到困惑。 以Sweldens的论文[1]作为主要参考:提升方案:第二代小波的构造,我仍然对索引集的定义感到困惑:它们的大小是多少?他们是如何建造的?...K(j)K(j)\mathcal{K}(j) 因此,我的问题是:有没有人知道第二代小波变换的一些资源(论文,教程,幻灯片...),它们的形式类似于教程,或者提供了更多的算法视图(而不是数学视图)。 ,这将有助于我设计自己的实现? 先感谢您。 参考文献 我的主要参考资料是: [1] Sweldens,W.(1998)。提升方案:第二代小波的构造。SIAM数学分析杂志,29(2),511。 我也在从中学习: [2] Daubechies,I.和Sweldens,W.(1998)。分解小波转换为提升步骤。傅立叶分析与应用杂志,4(3),247–269。 [3] Kovacevic,J.和Sweldens,W.(2000)。小波族在任意维度上递增顺序。图像处理,9(3),480–496。doi:10.1109 / 83.826784
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.