声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1427|回复: 2

[小波] 关于小波分解语音信号的问题

[复制链接]
发表于 2007-5-3 16:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
最近在做一个实验,需要将语音信号分段,每段16个点,然后分别做DWT变换。然后不做任何处理,再做IDWT变换。但是得到的信号失真很大。百思不得其解,希望大家想想办法,谢谢了、
     代码如下


clear all;
clc;
%读入声音
[aa,fs,nbits]=wavread('ceshilong.wav');
AA=aa';
A(1:80000)=AA(1:80000);
for i=1:65536 % 4096*16=65536,候采样频率是22.05KHZ
     Ae(i)=A(i);
end

for k=1:4096
    %将原始音频信号分段,每段16个数据
    Aef(k,(1:16))=Ae(((k-1)*16+1):((k-1)*16+16));
    %将每个音频段进行dwt变换
    [c,l]=wavedec(Aef,3,'db4');
     ca3=appcoef(c,l,'db4',3);
    [cd3,cd2,cd1]=detcoef(c,l,[3,2,1]);
    c1_m=[ca3',cd3',cd2',cd1'];
    A_m(k,(1:16))=waverec(c1_m,l,'db4');
   Aey(1,(((k-1)*16+1):((k-1)*16+16)))=A_m(k,(1:16));
end
Am=Aey;
wavwrite(Am,fs,nbits,'DWT.wav');

subplot(211)
Aw=(Aw-min(min(Aw)))/(max(max(Aw))-min(min(Aw)))*225;
plot(Aw);
xlabel('采样点数');
ylabel('归一化幅度');
title('变换后的语音图像')
subplot(212)
A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225;
plot(A);
xlabel('采样点数');
ylabel('归一化幅度');
title('原始语音图像')
toc;
回复
分享到:

使用道具 举报

发表于 2007-5-4 10:09 | 显示全部楼层
把下语句
[c,l]=wavedec(Aef,3,'db4');
修改为
[c,l]=wavedec(Aef(k,:),3,'db4');

评分

1

查看全部评分

 楼主| 发表于 2007-5-4 19:00 | 显示全部楼层

问题解决了

太感谢songzy41,原来问题出在这里,真的很感:@)
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-18 09:53 , Processed in 0.073388 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表