📄 alawcom.m
字号:
function y= Alawcom(x,A,V)
%《数字信号处理教程——MATLAB释义与实现》子程序
% A律压缩器子程序
% 电子工业出版社出版 陈怀琛编著 2004年9月
%
% y= Alawcom(x,A,V)
% ------------------------------------
% y 为输出序列
% x 为输入序列
% A的值通常取87.56;
% V指输入量的最大范围。
%
if nargin<3 | V < max(abs(x)) % 若只有两个输入变元或V小于x的最大值
V=max(abs(x)); % 令V等于x的最大值
end
lnAp1 = log(A) + 1; % 计算中用的中间变量
VdA = V / A; % 计算中用的中间变量
% A-律压缩器分成两端,用不同方程赋值
indx = find(abs(x) <= VdA); % 满足此条件用下列方程
if ~isempty(indx)
y(indx) = A / lnAp1 * abs(x(indx)) .* sign(x(indx));
end
indx = find(abs(x) > VdA); % 满足此条件用另一个方程
if ~isempty(indx)
y(indx) = V / lnAp1 * (1 + log(abs(x(indx)) / VdA)) .* sign(x(indx));
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -