首页 > 解决方案 > 音频信号放大

问题描述

我正在尝试编写一个程序,该程序需要两个音频文件并尽可能地匹配另一个。因此,如果我要给程序两个音频文件,其中一个只是另一个的更安静的版本,程序应该放大更安静的一个以匹配另一个。我可以使用哪些功能来实现我正在寻找的东西?我使用了以下代码行,但它平衡了两个信号,但削减了更大的信号。我希望安静的等于响亮的

% creation of signals
 N=1024;
 n=0:N-1;
 x=sin(2*pi*(2^-7).*n);
 y=2*sin(2*pi*(2^-7).*n+pi/4);
 
 % justify its power 
 x1=x/sqrt(mean(x.^2));
 y1=y/sqrt(mean(y.^2));

标签: matlabsignal-processing

解决方案


您需要获得xy与最大平均值的比率,因为x这是 0.5,因为y这是 1。实现此目的的方法:

N=1024;
n=0:N-1;
x=sin(2*pi*(2^-7).*n);
y=2*sin(2*pi*(2^-7).*n+pi/4);

% justify its power
x1=x./(sqrt(mean(x.^2)/(max(mean(x.^2),mean(y.^2)))));
y1=y./(sqrt(mean(y.^2)/(max(mean(x.^2),mean(y.^2)))));

figure()
plot(n,y)
hold on
plot(n,x1)
legend('y','x1')
xlabel('n');

结果如下图: y 和 x1 绘制


推荐阅读