gaixiumami

<%@ page language="java" contentType="text/html; charset=gb2312"
    pageEncoding="gb2312"%>
    <%@include file="../taglib/taglib.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<style type="text/css">
body {
    line-height: 145%;
    color: #333333;
    text-decoration: none;
    font-size: 12px;
}
</style>
    <link href="style/style_club.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="dwr/util.js"></script>
        <script type="text/javascript" src="dwr/engine.js"></script>
        <script type="text/javascript" src="dwr/interface/validates.js"></script>
        <script type="text/javascript">
      
   var flag = true;
   function endsub(){
   alert("hello"+flag);
       return flag;
   }
   function checkpass(){
           var pass = document.myform.pwd.value;
           var divpass = document.getElementById("divpass");
           if(pass.length == 0 || pass == ""){
               divpass.innerHTML="密码不能为空!";
               flag = false;
           }else{
               divpass.innerHTML="";
           }
          
   }
  function validateuser(){
    validates.validateUser(window.document.myform.name.value,callBack)//方法回调,把前面方法的返回值付给后面的方法名
    }
  function callBack(data){
    var information = document.getElementById("info");
    if(data=="false"){
    document.getElementById("imagePic").src="/gradeManage/images/true.gif";
   information.innerHTML = "该用户可以注册 !";
  
    }else{
     document.getElementById("imagePic").src="/gradeManage/images/false.gif";
     information.innerHTML = "该用户已经存在 !";
     flag = false;
    }
   }
  
   function certain(){
       var pwd = document.myform.pwd.value;
       var repwd = document.myform.repwd.value;
       var divrepass = document.getElementById("divrepass");
       if(pwd != repwd){
           divrepass.innerHTML="两次密码不一致 !";
           flag = false;
       }else{
           divrepass.innerHTML="";
       }
  }
</script>
</head>
<body>
    <center>
        <h3>用户信息修改</h3>
    <form name="myform" action="user.do?method=update" method="post">
        <table>
            <tr>
                <td colspan="2"><input name="id" type="hidden" value="${requestScope.user.id }"/></td>
            </tr>
            <tr>
                    <th>用户名:</th>
                    <td><input name="name" type="text" size="22" value="${requestScope.user.name }" οnblur="validateuser()"/><img src="/gradeManage/images/20.gif" name="imagePic"/></td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td>
                <div id=info style="color:red;padding:10px;font-size:12px;"></div>
            </td>
        </tr>
                <tr>
                    <td colspan="2"></td>
                </tr>
                <tr>
                    <th>密码:</th>
                    <td><input name="pwd" type="password" value="${requestScope.user.pwd }" size="24" οnblur="checkpass()"/></td>
                </tr>
                <tr>
            <td>&nbsp;</td>
            <td>
                <div id=divpass style="color:red;padding:10px;font-size:12px;"></div>
            </td>
        </tr>
                <tr>
                    <td colspan="2"></td>
                </tr>
                <tr>
                    <th>确认密码:</th>
                    <td><input name="repwd" type="password" value="${requestScope.user.pwd }" size="24" οnblur="certain()"/></td>
                </tr>
                <tr>
            <td>&nbsp;</td>
            <td>
                <div id=divrepass style="color:red;padding:10px;font-size:12px;"></div>
            </td>
        </tr>
                <tr>
                    <td colspan="2"></td>
                </tr>
            <tr>
                <td><input name="submit" type="submit" value="修改"/></td>
                <td><input name="reset" type="reset" value="取消"/></td>
            </tr>
            <tr>
                <td colspan="2"><font color="red">${requestScope.update }</font></td>
            </tr>
        </table>
        </form>
    </center>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【标题】"语音识别的一个matlab程序"是一个与语音处理和模式识别技术相关的项目,它使用MATLAB编程语言实现。MATLAB是MathWorks公司开发的一种数值计算和数据可视化环境,广泛应用于工程、科学和数学领域,尤其在信号处理和机器学习方面有很强的功能。 【描述】提到的"在一个网站看到,大家分享一下"表明这是一个社区共享的资源,可能来源于一个在线论坛或编程交流平台。这样的共享行为旨在促进技术交流和学习,让其他对语音识别感兴趣的用户能够参考、学习和改进代码。 【标签】"语音识别"是这个项目的关键词,意味着该程序涉及将人类语音转化为文本或命令的过程。语音识别技术的核心是将音频信号转换为可理解的数据,这通常包括预处理、特征提取、模型训练和匹配等步骤。 在提供的【压缩包子文件的文件名称列表】中,我们可以推断出这个MATLAB程序的组成部分: 1. `demo.m`:通常是演示脚本,用于展示程序的主要功能和用法,用户可以通过运行这个文件快速了解程序的工作原理。 2. `.p` 文件(melfb.p, mfcc.p, vqlbg.p, disteu.p, test.p, blockFrames.p, train.p):这些是MATLAB的编译函数文件,可能包含特定的算法实现,如梅尔频率倒谱系数(MFCC)提取、声学建模、距离计算、训练和测试等功能。例如: - `melfb.p` 可能实现了梅尔滤波器组,用于对语音信号进行频谱分析。 - `mfcc.p` 可能负责MFCC的计算,这是语音识别中常用的特征提取方法。 - `train.p` 和 `test.p` 可能分别对应模型的训练和测试过程。 3. `Read Me.txt`:通常包含关于如何使用、配置和运行程序的说明和指导。 4. `www.pudn.com.txt`:可能指向源文件的下载地址或发布者的信息,PUDN(太平洋下载网)是一个提供各类资源下载的网站。 这个MATLAB程序可能涵盖了语音识别的完整流程,包括预处理、特征提取、模型训练和评估。通过运行`demo.m`,用户可以体验整个识别过程,并可根据源代码深入了解语音识别的实现细节。对于学习和研究语音识别技术的人来说,这是一个宝贵的实践资源。
在语音处理领域,特征提取是至关重要的步骤,它旨在从原始语音信号中提炼出具有代表性的参数,以便后续的分析、识别或建模。这里,我们关注的是三种基础且常用的语音特征:短时能量、平均幅度和平均过零率。这些特征在MATLAB中可以方便地实现。 让我们详细了解这三种特征: 1. **短时能量**:短时能量是衡量语音信号强度的一种方法。在MATLAB中,通常通过将语音信号分帧(例如,使用汉明窗),然后计算每帧的能量(即,信号平方和的总和)。这可以捕捉到语音的响度变化,对识别语音的有声/无声状态非常有用。计算公式为: ```matlab frame = x.*hamming(frame_length); % x为原始语音信号,frame_length为帧长度 energy = sum(frame.^2); ``` 2. **平均幅度**:平均幅度是测量语音信号幅度均值的特征,它反映了语音信号的平均响度。在MATLAB中,我们可以计算每帧信号的均值: ```matlab mean_amplitude = mean(abs(frame)); ``` 平均幅度可以帮助识别音调的变化,但不如短时能量敏感于信号的有无。 3. **平均过零率**:平均过零率是计算信号在特定时间内穿过零轴的次数,反映了信号的瞬态特性。在MATLAB中,计算平均过零率通常涉及对信号取绝对值,然后找出符号改变的点: ```matlab zero_crossings = find(diff(sign(frame)) == -2); mean_zero_rate = length(zero_crossings) / frame_length; ``` 这个特征对于检测语音中的爆破音和辅音特别有效。 在实际应用中,为了提高特征的鲁棒性,通常会结合使用这些特征,并可能进行归一化处理。例如,将所有特征缩放到相同的范围内,或者使用Mel频率倒谱系数(MFCC)等更高级的特征提取方法。这些特征组合起来能够提供更全面的语音描述,有助于在语音识别、情感分析或语音合成等任务中提升性能。 在提供的压缩包中,每个文件名对应一个特征的计算。`语音短时能量`可能是计算每帧能量后的结果,`平均幅度`包含了每帧的平均振幅,而`平均过零率`则可能是计算过的过零率。通过读取和解析这些数据文件,我们可以进一步了解不同语音片段的特性,并可能用于训练机器学习模型或其他语音处理任务
本文主要探讨了一维信号去噪的方法,通过MATLAB进行了实操分析。对一维信号进行了时域分析,通过绘制时域谱了解信号的基本特性。接着,利用快速傅里叶变换(FFT)将信号从时域转换到频域,以获取信号的频谱分布,这有助于识别噪声所在的频率范围。 在频谱分析的基础上,尝试设计了一个基于窗函数的简单带通滤波器。这里使用了fir1函数来设计滤波器,设定通带为50~350Hz,目的是保留这个频率范围内的信号,去除高频噪声。滤波器的频率响应和滤波后的信号分别通过图形展示,结果显示虽然滤除了部分高频噪声,但效果并不显著,特别是在采样频率未知的情况下,FFT变换的效果受限。 为解决这一问题,文章引入了小波分析。小波分析具备多分辨率分析的特性,能同时在时域和频域提供信号的局部信息。它可以灵活调整时间窗和频率窗的大小,以适应不同频率成分的信号。在处理实验数据时,先对信号进行一层小波分解,使用db1小波函数。分解后,对细节系数进行阈值处理,以达到去噪的目的。通过小波重构将处理后的系数恢复为滤波后的信号。 整个过程中,MATLAB代码展示了如何读取数据、进行FFT变换、设计滤波器以及执行小波分析和重构。小波分析的去噪效果通常优于传统滤波器,尤其是在处理非平稳信号和局部特征时,能更好地保留信号的重要信息。 总结起来,一维信号去噪涉及的关键技术包括时域分析、FFT变换、带通滤波器设计(窗函数法)以及小波分析与重构。MATLAB作为强大的数值计算工具,提供了实现这些技术的便捷途径。通过这些方法,工程师和研究人员可以有效地从噪声中提取有用信号,为后续的数据处理和分析提供更纯净的信号源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值