湖北省建设厅造价官方网站,百度一下电脑版首页,小程序注册条件,中国工商注册网官方目录
1.算法运行效果图预览
2.算法运行软件版本
3.部分核心程序
4.算法理论概述
1.加窗处理#xff1a;
2.分帧处理#xff1a;
3.功率谱密度估计#xff1a;
4.滤波处理#xff1a;
5.逆变换处理#xff1a;
6.合并处理#xff1a;
5.算法完整程序工程 1.算法…目录
1.算法运行效果图预览
2.算法运行软件版本
3.部分核心程序
4.算法理论概述
1.加窗处理
2.分帧处理
3.功率谱密度估计
4.滤波处理
5.逆变换处理
6.合并处理
5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本
matlab2022A
3.部分核心程序
............................................................................
% 处理最后一帧如果最后一帧的长度小于帧长用零填充至帧长
y_seg y(1(Nframe-1)*(Len_frame-Len_loop):end);
y_seg [y_seg; zeros(Len_frame-length(y_seg), 1)];
y_t [y_t y_seg];
%应用汉宁窗函数
window hann(Len_frame);%apply hanning window
y_fft zeros(size(y_t));
for idx 1 : Nframey_fft(:, idx) fft(window .* y_t(:, idx));
end%计算带噪语音的功率谱密度PSD估计值采用Barlett方法L为周期图的段数
L 12;
Pyy func_Bartlett(y_fft,L); % 噪声功率谱密度PSD估计选择MS或MMSE方法这里采用MS方法M为段数B为偏差补偿系数
M 12;
B 1;
Pnn func_nPSD(Pyy,M,B);% 目标语音功率谱密度PSD估计选择ML或DD方法这里采用ML方法得到SNR的ML估计值SNR_ml
SNR_ml func_PSDML(Pyy,Pnn);%DD方法的代码被注释掉了alpha为平滑系数取值一般在0.96-0.99之间
% 使用wiener函数计算Wiener增益得到降噪后的频域信号s_hat_k
y_wiener_fft func_wiener(y_fft,SNR_ml);% 进行逆变换和重叠相加操作得到降噪后的时域信号s_t
y_wiener_ifft ifft(y_wiener_fft);% Inverse FFT transform
% 取s_t的前半部分作为s_t_est1
y_wiener2 y_wiener_ifft(1:Len_frame-Len_loop/2, 1);
% 取s_t的后半部分作为s_t_est2
y_wiener3 y_wiener_ifft(1Len_loop/2:end,end);
% 去掉s_t的第一列和最后一列
y_wiener_ifft(:, 1) [];
y_wiener_ifft(:, end) [];
% 去掉s_t的前hop_length/2行和后hop_length/2行
y_wiener_ifft(1:Len_loop/2, :) [];
y_wiener_ifft(end-(Len_loop/2-1): end, :) [];
% 将s_t重塑为一列向量
y_wiener_ifft reshape(y_wiener_ifft, [], 1);
% 取s_t的实部作为最终的降噪后的时域信号s_t
y_wiener_ifft real(y_wiener_ifft);
71
4.算法理论概述 PSD-MLPower Spectral Density Maximum Likelihood算法是一种基于最大似然估计的语音增强算法通过对语音信号的功率谱密度进行估计并利用估计结果对原始语音信号进行滤波处理以达到增强语音信号的目的。下面将详细介绍PSD-ML算法的原理和数学公式。 PSD-ML算法的基本思想是利用最大似然估计对语音信号的功率谱密度进行估计并根据估计结果对原始语音信号进行滤波处理。具体实现过程中首先需要将语音信号分成多个重叠的帧并对每帧信号进行加窗处理以减少频谱泄漏。然后利用快速傅里叶变换FFT将每帧信号转换为频域表示并根据功率谱密度的估计结果对频域信号进行滤波处理。最后将滤波后的频域信号通过逆快速傅里叶变换IFFT转换回时域表示并将重叠的帧进行合并以得到增强后的语音信号。 假设原始语音信号为x(n)加窗后的信号为x_w(n)分帧后的第i帧信号为x_i(n)其对应的功率谱密度为P_i(k)其中k表示频率索引。则PSD-ML算法的数学公式可以表示为
1.加窗处理
x_w(n) w(n) * x(n)
其中w(n)为窗函数如汉明窗或汉宁窗等。
2.分帧处理
x_i(n) x_w(niL)
其中L为帧长i为帧索引。
3.功率谱密度估计
P_i(k) |X_i(k)|^2 / N
其中X_i(k)为第i帧信号的FFT变换结果N为帧长。
4.滤波处理
Y_i(k) G_i(k) * X_i(k)
其中G_i(k)为滤波器的增益函数可以根据功率谱密度的估计结果计算得到。
5.逆变换处理
y_i(n) IFFT{Y_i(k)}
其中IFFT表示逆快速傅里叶变换。
6.合并处理
y(n) ∑ y_i(n-iL)
其中∑表示对所有重叠的帧进行合并。 需要注意的是在实际应用中为了进一步提高语音增强的效果可以采用一些优化策略如自适应滤波器、多通道滤波器等。同时也需要根据实际应用场景和需求来选择合适的窗函数、帧长、滤波器类型等参数。
5.算法完整程序工程
OOOOO
OOO
O