使用wavread无效波形文件时出错。原因:无法打开文件

时间:2013-03-25 10:18:02

标签: matlab

我收到错误使用wavread时错误(第67行) 无效的Wave文件。原因:无法打开文件。

energy_per_frame出错(第2行)[inpu fs] = wavread(文件);

这是调用energy_per_frame的函数的源代码。

 [inpu fs] = wavread(file);
clc;clear;close all;
file = input('Enter name of wav file  ', 's');
counter=0;
for test_number = 0:4
for test_number2 = 0:20
        counter=counter+1;
        reference = dtw_avg(test_number2);
        test = energy_per_frame(file);
        distance(counter) = dtw(test,reference);
end

这是函数energy_per_frame

的源代码
 [inpu fs] = wavread(file);
    fn = fs/2;
bins = 512; %useable bins
frame_length = bins;
window = hamming(frame_length);
overlap = .5;
number_of_frames = (length(inpu)/(frame_length)/overlap) - 1;

这里有什么问题?

1 个答案:

答案 0 :(得分:0)

好吧,你的函数定义看起来应该是这样的

function [ output_args ] = energy_per_frame( input_args )
%UNTITLED Summary of this function goes here
%   Detailed explanation goes here


end

您似乎错过了function关键字。

但是,如果第一个块只是一个脚本,那么在实际拥有文件名的用户输入之前,您将调用wavread。而且,实际上没有必要像函数那样调用clear等。