什么是频域置零法?
使用matlab进行仿真,使用频域置零法去除音频信号啸叫噪声
下面为频域置零法的代码,不理解为什么这样写?不知道什么是频域置零法?
% (一)画出含噪音乐信号y1的波形
clear
clc
%做FFT的点数
%读入含噪音乐信号yinyue.wav
N1=81920;
fs=8192;
y1=audioread('jinlichao2.wav',[1,81920]);
sound(y1)%播放y1,监听该音乐信号
pause(3)%暂停1s
%画y1(n)
figure(1);
subplot(221);
plot(real(y1));
grid on;
title('含噪音乐信号频谱y1(n)');
% (二)音乐噪声消除
y1=y1*6;
Y1=fft(y1,N1); %对y1进行FFT分析
PSD=Y1.*conj(Y1)/N1;%画功率谱PSD(k),单位为:unit^2/Hz代表单位频率上信号的能量,所以是密度谱,幅值代表频段内的有效值平方
fs=8192;%采样频率
f=8192/N1*(0:N1/2-1);%某点n所表示的频率
subplot(222);
plot(f,PSD(1:N1/2));
title('含噪音乐信号的功率谱PSD(k)');
axis([0 5000 0 500]);%x轴为0-5000,y轴为0-500
grid on;
% 1.频域置零法消噪
case 1 %选择方法1.频域置零法消噪
Y1(38000:44000)=0;%_________对从点数38000到44000范围内的频谱Y1(k)置零____,消除噪声
y11=ifft(Y1,N1);%___修正后的频谱Y1(k)经IFFT重构原音乐信号__
PSD1=Y1.*conj(Y1)/N1;
subplot (224);
plot(f,PSD1(1:N1/2));
axis([0 5000 0 500]);
title('频域置零消噪后的功率谱PSD1(k)');
grid on;
subplot(223);plot(real(y11));title('频域置零消噪后的音乐信号频谱y11(k)');grid on;