我很感激你对我的项目的帮助。问题和我所尝试的是下面。
问题:你已经被提供了一个声音文件,buzzjc.wav,这是一个某人说话的音频剪辑,但它被添加了一个由一些音调组成的蜂鸣器信号破坏了。首先使用命令wavread(使用较老的MATLAB版本)和audioread(使用较新版本)将信号加载到MATLAB中,你可以在MATLAB帮助文件中阅读更多。在MATLAB中加载音频文件并播放音频的示例(2017a):
玩家= audioplayer(数据,fs);
玩(球员);
一个。)使用DFT来弄清出音调频率(至少大约)。列出音调频率。
湾)描述如何使用本课程中覆盖的主题在音频信号中删除这些不需要的音调。
c。)接下来,删除这些音调,然后侦听剪辑(注意:如果您使用的是旧版MATLAB,则可能必须使用命令波形播放音频剪辑。夹子中的人说是什么?
我的解决方案:
[数据,fs] = audioread('buzzjc.wav');
玩家= audioplayer(数据,fs);
玩(球员);
dt = 1 / fs;
t = 0:DT:1;
N =长度(数据);
f =(1:n / 2 + 1)* fs / n;
剪辑= 205;
X = 0(剪辑,长度(数据)-剪辑);
y =零(长度(f),长度(数据)-clip);
为了i = 1:长度(数据)-clip
x(:,i)=数据(i:i +剪辑-1);
TMPS = FFT(x(:,i),n);
y(:,i)= abs(tmps(1:n / 2 + 1));
结尾
ImagesC(T,F,(Y))
标题(“隐藏词的声谱图”);
Xlabel('时间[S]')
ylabel(的频率(赫兹))
beginFreq = 800 / (fs/2);
endFreq = 900 / (fs/2);
[b,a] = butter(6, (beginFreq/endFreq/2));
fOut = filtfilt(b, a, f);
p = audioplayer(Fout,FS);
p.play;
我得到了需要删除的频率。975Hz,875Hz,675Hz和450Hz。
当运行它有错误消息尝试执行脚本黄油作为一个函数:/Users/Leah/Documents/MATLAB/butter.m
[b,a] = butter(6, (beginFreq/endFreq/2))
它不允许我附加文件。任何帮助都将非常感激。