• 大小: 1.69KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-03-28
  • 语言: 其他
  • 标签: 其他  

资源简介

本程序基于线性预测编码(LPC)来实现对输入语音信号的线性编码(寻找预测器参数)以及通过预测器参数完成对信号的重组回复

资源截图

代码片段和文件信息

%% 清空运行环境
clear
clc
close all

%% 读取语音信号
I = audioread(‘录音文件.wav‘);%读入原始语音
%对指定帧位置进行加窗处理
Q = I‘;
N = 256;           % 窗长
Hamm = hamming(N); % 生成汉明窗,加窗之后仅处理窗中的数据
frame = 70;        % 需要处理的帧位置
M = Q(((frame - 1) * (N / 2) + 1):((frame - 1) * (N / 2) + N)); % 截取指定位置的语音数据
frame = M .* Hamm‘;% 加窗后的语音
P = input(‘请输入预测器阶数 = ‘); 
ai = lpc(frame‘P);                   % 计算lpc系数
LP = filter([0 -ai(2:end)]1frame); % 建立语音帧的正则方程数据为frame滤波器参数为[0 -ai(2:end)]
E = frame - LP; % 预测误差
figure(1)
subplot(211)plot(1:Nframe1:NLP‘-r‘);grid;
title(‘原始语音和预测语音波形(经过汉明窗截取)‘)
subplot(212)plot(E);grid;
title(‘预测误差(经过汉明窗截取)‘);

%% 画出语谱图
ai1 = lpc(IP); % 计算原始语音lpc系数
LP1 = filter([0 -ai(2:end)]1I); % 建立

评论

共有 条评论