📄 sigmerge.m
字号:
function sig=sigmerge(x1,x2,ratio);%SIGMERGE Add two signals with given energy ratio in dB.% SIG=SIGMERGE(X1,X2,RATIO) adds two signals so that a given% energy ratio expressed in deciBels is satisfied.% % X1, X2 : input signals.% RATIO : Energy ratio in deciBels (default : 0 dB).% X : output signal.% X= X1+H*X2, such that 10*log(Energy(X1)/Energy(H*X2))=RATIO%% Example : % sig=fmlin(64,0.01,0.05,1); noise=hilbert(randn(64,1));% SNR=15; x=sigmerge(sig,noise,SNR);% Esig=mean(abs(sig).^2); Enoise=mean(abs(x-sig).^2);% 10*log10(Esig/Enoise)% F. Auger, July 1995.% Copyright (c) 1996 by CNRS (France).%% ------------------- CONFIDENTIAL PROGRAM -------------------- % This program can not be used without the authorization of its% author(s). For any comment or bug report, please send e-mail to % f.auger@ieee.org if (nargin<2) error('At least two parameters are required');elseif nargin==2, ratio=0;end;[x1row,x1col] = size(x1);[x2row,x2col] = size(x2);if (x1col~=1)|(x2col~=1), error('X1 and X2 must have only one column');elseif (x1row~=x2row), error('X1 and X2 must have the same number of rows');elseif (length(ratio)~=1), error('RATIO must be a scalar');elseif (ratio==inf), sig = x1;else Ex1=mean(abs(x1).^2); Ex2=mean(abs(x2).^2); h=sqrt(Ex1/(Ex2*10^(ratio/10))); sig=x1+h*x2;end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -