clc;
clear;
[GT,F] = audioread('青鸟-火影忍者.mp3'); %获得样本和采样频率
single_channe = GT(:,1);%获得单通道音乐
Length = length(single_channe);
n=(1:Length)';
audiowrite('原始单通道信号.wav',single_channe,F);
figure(1);
plot(n,single_channe);
title('原始单通道信号');
%生成噪声加音乐的信号
v = 0.8 * randn(Length,1);
ar = [1,1/2];
v1= filter(1,ar,v);%通过ar模型,得到噪声
x = single_channe + v1;%将音乐加上噪声
ma = [1,-0.8,0.4,-0.2];%生成与噪声相关的信号
v2 = filter(ma,1,v);
audiowrite('加噪声后信号.wav',x,F);
figure(2);
plot(n,x);
title('加噪声后信号');
%通过最陡梯度下降法求噪声
v_after=LMS(v2,x,60,0.0005);
audio_filter = x - v_after';
audiowrite('LMS滤波信号.wav',audio_filter,F);
figure(3);
plot(n,audio_filter);
title('LMS滤波信号')
square_error = (single_channe - audio_filter).^2;
figure(4);
plot(n,square_error);
title('误差');