gpt4 book ai didi

matlab - Matlab 中的噪声消除

转载 作者:行者123 更新时间:2023-12-03 02:35:24 26 4
gpt4 key购买 nike

我正在尝试从 wav 文件中消除噪音。但是运行脚本后我不断收到以下错误。
我使用的wav文件是https://drive.google.com/file/d/0BzIyOj_KUKufTTNWMFlRMW9fT2c/view?usp=sharing

我使用 Remove noise from wav file, MATLAB 中的代码.

>> run sample3
Index exceeds matrix dimensions.

Error in sample3 (line 17)
stem(1:N, f(:,2));

Error in run (line 96)
evalin('caller', [script ';']);

这是代码:
%% Read in the file
clearvars;
close all;
[f,fs] = audioread('noise.wav');

%% Play original file
pOrig = audioplayer(f,fs);
pOrig.play;

%% Plot both audio channels
N = size(f,1); % Determine total number of samples in audio file
figure;
subplot(2,1,1);
stem(1:N, f(:,1));
title('Left Channel');
subplot(2,1,2);
stem(1:N, f(:,2));
title('Right Channel');

%% Plot the spectrum
df = fs / N;
w = (-(N/2):(N/2)-1)*df;
y = fft(f(:,1), N) / N; % For normalizing, but not needed for our analysis
y2 = fftshift(y);
figure;
plot(w,abs(y2));

[B,A] = butter(n, [beginFreq, endFreq], 'bandpass');

%% Design a bandpass filter that filters out between 700 to 12000 Hz
n = 7;
beginFreq = 700 / (fs/2);
endFreq = 12000 / (fs/2);
[B,A] = butter(n, [beginFreq, endFreq], 'bandpass');

%% Filter the signal
fOut = filter(b, a, f);

%% Construct audioplayer object and play
p = audioplayer(fOut, fs);
p.play;

最佳答案

代码假定信号为 立体声 (又名两个 channel )。您的声音文件很可能是单声道(从它听起来的方式来看……又名一个声道),因此应删除代码中使用正确声道的任何引用。

简而言之,受影响的代码的唯一部分是在时域中显示正确的 channel 。其余代码应该可以在访问立体声左声道时工作,这恰好是声音文件的第一列,也是单声道文件中的唯一列。

替换此代码:

N = size(f,1); % Determine total number of samples in audio file
figure;
subplot(2,1,1);
stem(1:N, f(:,1));
title('Left Channel');
subplot(2,1,2);
stem(1:N, f(:,2));
title('Right Channel');

和:
N = size(f,1); % Determine total number of samples in audio file
figure;
stem(1:N, f(:,1));
title('Mono Channel');

将来,请尝试更仔细地阅读 MATLAB 错误。它们非常详细地描述了代码中的问题。在这种情况下,它提示您试图访问声音文件中的列 f那不存在。

注意:我是您链接的答案的原作者。

关于matlab - Matlab 中的噪声消除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40875571/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com