作者:桂。

时间:2017-03-26  10:12:07

链接:http://www.cnblogs.com/xingshansi/p/6621914.html


 【读书笔记05】

前言

西蒙.赫金的《自适应滤波器原理》第四版第三章,线性预测是Wiener Filter的应用,作为信号识别的特征以及信号编码的一种实现途径。本想着跳过这一章,但想着每一章多少记录一下,直到看到Kalman Filter,也就写写吧。主要包括:

  1)前向线性预测原理;

  2)线性预测应用实例;

内容为自己的学习笔记,如有不当之处,希望各位帮忙指出!

一、前向线性预测原理

以语音信号为例,声道模型的一种观点是:级联结构的共振峰模型。即:对于一般元音,可以用全极点模型,传输函数:

$H\left( z \right) = \frac{G}{{1 - \sum\limits_{i = 1}^p {{a_i}{z^{ - k}}} }}$

G为幅值因子,p为极点个数。

这里仅仅讨论全极点模型。对于输出$x(n)$和激励$u(n)$有差分方程:

$x\left( n \right) = \sum\limits_{i = 1}^p {{a_i}x\left( {n - i} \right) + Gu\left( n \right)}$

称系统

$\hat x\left( n \right) = \sum\limits_{i = 1}^p {{a_i}x\left( {n - i} \right)} $

为线性预测器。$\hat x\left( n \right)$是$x(n)$的估算值。$a_i$为预测系数(Linear Prediction Coefficient, LPC),$p$为对应阶数。

对应单点预测误差:

$e(n) = x(n) - \hat x\left( n \right) = x(n) - \sum\limits_{i = 1}^p {{a_i}x\left( {n - i} \right)} $

预测误差:

$\sum\limits_n {{e^2}(n)}  = \sum\limits_n {{{\left[ {x(n) - \sum\limits_{i = 1}^p {{a_i}x\left( {n - i} \right)} } \right]}^2}} $

对$a_i$求偏导即可实现求解,得出的方程组通常称为Yule-Walker方程。

二、应用实例

利用预测系数估计逼近系统响应$H$,可以用该系数表征语音的特性,也可以用逼近的$H$观察声道特性,同样可以进行共振峰提取,这些都可以看作说话人的特征。

给出代码:

clear all; clc; close all;
filedir=[];                             % 设置数据文件的路径
filename='a.wav';                       % 设置数据文件的名称
fle=[filedir filename]                  % 构成路径和文件名的字符串
[x,fs]=wavread(fle);                    % 读入语音数据
L=240;                                  % 帧长
p=30;                                   % LPC的阶数
y=x(8001:8000+L);                       % 取一帧数据
ar=lpc(y,p);                            % 线性预测变换
nfft=512;                               % FFT变换长度
W2=nfft/2;
m=1:W2+1;                               % 正频率部分下标值
Y=fft(y,nfft);                          % 计算信号y的FFT频谱
Y1=lpcar2ff(ar,W2-1);                   % 计算预测系数的频谱
% 作图
subplot 311; plot(y,'k');
title('一帧语音信号的波形'); ylabel('幅值'); xlabel('(a)')
subplot 312;
plot(m,20*log10(abs(Y(m))),'k','linewidth',1.5);
line(m,20*log10(abs(Y1)),'color','r','linewidth',2)
axis([0 W2+1 -30 25]); ylabel('幅值/db');
legend('FFT频谱','LPC谱',3); xlabel(['样点' 10 '(b)'])
title('FFT频谱和LPC谱的比较 p=4');subplot 313;
plot(m,20*log10(abs(Y(m))),'k','linewidth',1.5);
line(m,20*log10(abs(Y1)),'color','r','linewidth',2)
axis([0 W2+1 -30 25]); ylabel('幅值/db');
legend('FFT频谱','LPC谱',3); xlabel(['样点' 10 '(c)'])
title('FFT频谱和LPC谱的比较 p=30');

对应结果图:

可以看出,信号的频谱由慢变化分量调制高频信号,对应时域就是卷积,而声道模型对应卷积的$h(n)$,p选择过小估计不准,选择过大容易过拟合,这么看来lpc说是预测其实本质也是拟合的问题,同样有Over-fitting. 得到LPC谱之后,可以利用峰值查找等方式,进行共振峰估计。

参考:

  • Simon Haykin 《Adaptive Filter Theory Fourth Edition》.
  • 宋知用:《MATLAB在语音信号分析和合成中的应用》.

自适应滤波——线性预测(LPC)相关推荐

  1. 自适应滤波(LMS,RLS)

    1.背景及相关知识介绍 自适应滤波存在于信号处理.控制.图像处理等许多不同领域,它是一种智能更有针对性的滤波方法,通常用于去噪. 图中x(j)表示 j 时刻的输入信号值,y(j)表示 j 时刻的输出信 ...

  2. 自适应滤波:最小均方误差滤波器(LMS、NLMS)

    作者:桂. 时间:2017-04-02  08:08:31 链接:http://www.cnblogs.com/xingshansi/p/6658203.html 声明:欢迎被转载,不过记得注明出处哦 ...

  3. 自适应滤波实例之噪声抵消

    实验模型 s(n)是立体声音乐信号,fs=8kHz,平均功率为0.0047: v(n)是零均值高斯白噪声,方差为1: h(n)是由5阶FIR低通滤器模拟,带宽为[0, 0.35fs]: 目标:d(n) ...

  4. 自适应滤波:维纳滤波器——FIR及IIR设计

    作者:桂. 时间:2017-03-23  06:28:45 链接:http://www.cnblogs.com/xingshansi/p/6603263.html [读书笔记02] 前言 仍然是西蒙. ...

  5. 4)自适应滤波(一)[LMS算法]

    目录 一.LMS算法 1.滤波器--改变信号频谱 模拟滤波器: 数字滤波器: 2.自适应滤波器简介 自适应滤波器: 非自适应滤波器: 自适应滤波器应用: 自适应滤波场景: 自适应滤波处理逻辑(处理非平 ...

  6. 【语音去噪】基于最小二乘自适应滤波LMS和RLS实现语音去噪含Matlab源码

    1 简介 自适应信号处理的理论和技术已经成为人们常用滤波和去噪技术.文中讲述了自适应滤波的原理以及LMS算法和RLS算法两种基本自适应算法的原理及步骤.并用MATLAB分别对两种算法进行了自适应滤波仿 ...

  7. 回声消除中的自适应滤波算法综述

    作者:凌逆战 博客园地址:https://www.cnblogs.com/LXP-Never/p/11773190.html 自适应回声消除原理 声学回声是指扬声器播出的声音在接受者听到的同时,也通过 ...

  8. 滤波总结+应用举例1(kalman滤波、序贯滤波、UD分解滤波、遗忘滤波、信息滤波、自适应滤波)(内含matlab代码)

    最近在研究滤波的相关知识,在此写个总结,以免自己遗忘. 卡尔曼滤波其实是一种估计方法,在已知前一时刻的状态量和当前时刻的量测情况下,估计当前状态量. 1.首先介绍常规kalman filter(含详细 ...

  9. 蓝牙耳机ENC通话降噪测试-自适应滤波技术

    主动降噪和通话降噪是不一样的降噪技术,主动降噪是起到把环境噪声最大程度地抵消,让使用耳机的人享受安静的环境:而通话降噪则是另一个方向的应用,它可以让使用通话降噪耳机的人在嘈杂的马路边打电话,或者在飞驰 ...

  10. 【信号检测】基于matlab自适应滤波法微弱信号检测【含Matlab源码 2308期】

    ⛄一.自适应滤波法微弱信号检测 1 NLMS自适应滤波 1.1 NLMS自适应滤波基本原理 最小均方 (LMS) 误差自适应滤波器[4]是将输入信号x (t) 通过系数可调的加权滤波器后, 与期望的参 ...

最新文章

  1. 欢迎大家观顾【图灵教育社区】
  2. Qt修炼手册7_图形:用户自定义QGraphicsItem
  3. Python回调函数
  4. linux安装tensorflow教程,Ubuntu 16.04 安装 TensorFlow(GPU支持)
  5. 基于.NET的系统开发需要注意的问题总结
  6. 基础知识(十三)dlib python人脸检测 特征点定位
  7. docker-compose 配置kafka_Docker Compose 引用环境变量
  8. 微信小程序想通过场景化缩短路径
  9. 游戏UI设计(2.1)--窗口之父CXWnd的封装
  10. 中兴 108 亿换得自由身!
  11. 生物界“AlphaGo”来了!蛋白结构预测AlphaFold大胜传统人类模型
  12. python定时器 循环_Python循环定时服务功能(相似contrab)
  13. JavaScript异步编程的四种方法(转)
  14. ubuntu安装cuda11.2
  15. 百度bae专业版svn提交问题
  16. Telnet 发电子邮件 E-mail
  17. 微信小程序 view的文本自动换行了的问题(scroll-view)/微信小程序 view换行跟不换行的解决方案
  18. Android攻城狮ScrollView
  19. 美国计算机研究生最好的大学排名,美国大学计算机信息系统专业研究生排名
  20. 在苹果Mac上如何恢复已删除的用户?

热门文章

  1. 你是如何看待 ‘裸辞’ 这件事的?
  2. HDU2612---(两次BFS)
  3. MySQL某列增加标注_MySQL 使用CASE表达式给行做标记
  4. 内江计算机职业学校有哪些,内江第二计算机职业中学有哪些专业
  5. 云的种类 计算机,云架构常用的云组件类型分析
  6. abp框架 mysql_ABP框架迁移到Mysql
  7. mongo与sql对比--来自网上
  8. 2017云栖大会门票转让_2018云栖大会门票价格及购买流程!附赠购买代金券
  9. python中@staticmethod_Python中的 @staticmethod@classmethod方法
  10. taro 请务必在小程序页面中完善页面基础信息_如何一人五天开发完复杂微信小程序...