打印
[DSP编程]

如何用C6000实现语音预加重和去加重滤波器

[复制链接]
3225|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
刚刚学DSP,对于有些问题不太明白。想要实现发射预加重和接收去加重的滤波器,看有的论文上面写的是一般采用具有 6dB/oct 的高通数字滤波器来实现语音信号的预加重处理,得到滤波器传递函数的形式为:H(z)=1-αz-1,α为预加重滤波器系数。不知道如何编程实现,另外去加重也不知是否需要同样的传递函数来做。各位可以指导下吗,多谢多谢。

相关帖子

沙发
zhangmangui| | 2014-6-8 19:47 | 只看该作者
没搞过   帮忙顶   
欢迎新朋友

使用特权

评论回复
板凳
aresc| | 2014-6-9 00:51 | 只看该作者
预加重是用来提升将要发送到通讯线路中信号的高频段,用于提高信噪比,因为线路中的噪声是固定的,在接收端再进行去加重恢复信号中的高频部分,此时的信号已经引入线路中的噪声,去加重的过程同时也降低了信号中的噪声。

按你的那个预加重H(z),按差分方程就是y(n) = x(n)-a*x(n-1),去加重的过程是H'(z) = 1/H(z),差分方程y(n) = x(n) + a*y(n-1)。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
亚细亚小鸭 + 1 很给力!
地板
亚细亚小鸭|  楼主 | 2014-6-9 11:55 | 只看该作者
aresc 发表于 2014-6-9 00:51
预加重是用来提升将要发送到通讯线路中信号的高频段,用于提高信噪比,因为线路中的噪声是固定的,在接收端 ...

您好,非常感谢您的回答,可以麻烦您再帮忙解答下这个滤波器的生成问题吗?十分感谢

如果用matlab的fdatool工具箱辅助生成预加重和去加重的滤波器,怎么设置参数才能达到这个差分方程达到的每倍频提升或者降低6db/otc,并且输出C头文件呢,是不是只能用fdatool来辅助生成滤波器系数呢?如果使用matlab中的freqz函数来求频响函数可以将此差分方程设计的滤波器输出为头文件吗?谢谢您。

使用特权

评论回复
5
ttxs_2013| | 2014-6-9 19:30 | 只看该作者
亚细亚小鸭 发表于 2014-6-9 11:55
您好,非常感谢您的回答,可以麻烦您再帮忙解答下这个滤波器的生成问题吗?十分感谢

如果用matlab的fdat ...

FDATool 可以导出滤波器系数文件,但是调用函数应该是不能输出滤波器系数文件的。

使用特权

评论回复
6
aresc| | 2014-6-9 22:26 | 只看该作者
本帖最后由 aresc 于 2014-6-9 22:50 编辑
亚细亚小鸭 发表于 2014-6-9 11:55
您好,非常感谢您的回答,可以麻烦您再帮忙解答下这个滤波器的生成问题吗?十分感谢

如果用matlab的fdat ...

呵呵,不好意思,我也没弄明白a是怎么算出来的,很多的文档都建议取值0.9~1.0。应该有出处的,估计和模拟滤波有关。至于6dB/oct应该就是要求用一阶差分方程,比如如果要求12dB/oct就是用二阶差分方程等等。这个6dB/oct的斜率只能近似,matlab应该没有直接的滤波器函数可以实现。

至于滤波器系数,比如你选a=0.95,那么预加重是的滤波器系数 h=[1,-0.95],为FIR滤波器。去加重的滤波器系数是b=[1, 0], a=[1,- 0.95],为IIR滤波器。然后就是按差分方程实现对输入信号进行滤波。freqz是用来看频响的。

使用特权

评论回复
7
亚细亚小鸭|  楼主 | 2014-6-9 22:55 | 只看该作者
aresc 发表于 2014-6-9 22:26
呵呵,不好意思,我也没弄明白a是怎么算出来的,很多的文档都建议取值0.9~1.0。应该有出处的,估计和模拟 ...

谢谢啊,这个a的参数确实不知道从哪里来的,不少文档里面建议取值在您说的那个范围内。我刚刚用fdatool模拟了一下,您也可以试一下,大概是可以模拟出来这样的滤波器的,不过用的不是一般的滤波器,是任意幅度的滤波器,具体的设置我上个图,您可以看一下。 freq.vector和mag. vector以及weight vector设置分别为:[0:100:4100],[sqrt(1+(0.1*pi*(0:100:4100)).*(0.1*pi*(0:100:4100)))],[ones(1,21)],去加重的网络按照您说的应该是这个的传递函数的倒数,应该可以设计出来,但是目前我还没有做出来。

使用特权

评论回复
8
zhangmangui| | 2014-6-9 23:28 | 只看该作者
好贴  兄弟们继续

使用特权

评论回复
9
aresc| | 2014-6-10 00:25 | 只看该作者
亚细亚小鸭 发表于 2014-6-9 22:55
谢谢啊,这个a的参数确实不知道从哪里来的,不少文档里面建议取值在您说的那个范围内。我刚刚用fdatool模 ...

学习了,我没在fdatool里这么用过。只是你这样不就变成用10阶的滤波器去近似那个6dB/oct,干嘛不直接用那个H(z)=1-a*z^-1? 只用选定一个a,然后pre-emphasis和de-emphasis的滤波器系数都是直接手写出来。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝