No BSD License  

Highlights from
DTMF Filtering and Noise Simulator

image thumbnail
from DTMF Filtering and Noise Simulator by Rajiv Singla
Dual Tone Multiple Frequency Noise and Filter SImulator

DecodedFrequencies(E);
function [f1,f2,DialedNum] = DecodedFrequencies(E);

%Computes the energy of the Signal
%Input Variables
%    E    = Energy Matrix of the Filtered Signals
%
% Output Variables
%    f1   = first decoded frequency 
%    f2   = second decoded frequency

Fmat = [697 770 852 941 1209 1336 1477 1633];

LowEnergyMatrix = E(1:4);
HighEnergyMatrix = E(5:8);

[e1,e1Index]=max(LowEnergyMatrix);
[e2,e2Index]=max(HighEnergyMatrix);

f1 = Fmat(e1Index);
f2 = Fmat(4+e2Index);

if        f1 == Fmat(1) && f2 == Fmat(5) 
   DialedNum = '1';
   elseif f1 == Fmat(1) && f2 == Fmat(6) 
   DialedNum = '2';
   elseif f1 == Fmat(1) && f2 == Fmat(7) 
   DialedNum = '3';
   elseif f1 == Fmat(1) && f2 == Fmat(8) 
   DialedNum = 'A';
   elseif f1 == Fmat(2) && f2 == Fmat(5) 
   DialedNum = '4';
   elseif f1 == Fmat(2) && f2 == Fmat(6) 
   DialedNum = '5';
   elseif f1 == Fmat(2) && f2 == Fmat(7) 
   DialedNum = '6';
   elseif f1 == Fmat(2) && f2 == Fmat(8) 
   DialedNum = 'B';
   elseif f1 == Fmat(3) && f2 == Fmat(5) 
   DialedNum = '7';
   elseif f1 == Fmat(3) && f2 == Fmat(6) 
   DialedNum = '8';
   elseif f1 == Fmat(3) && f2 == Fmat(7) 
   DialedNum = '9';
   elseif f1 == Fmat(3) && f2 == Fmat(8) 
   DialedNum = 'C';
   elseif f1 == Fmat(4) && f2 == Fmat(5) 
   DialedNum = '*';
   elseif f1 == Fmat(4) && f2 == Fmat(6) 
   DialedNum = '0';
   elseif f1 == Fmat(4) && f2 == Fmat(7) 
   DialedNum = '#';
   elseif f1 == Fmat(4) && f2 == Fmat(8) 
   DialedNum = 'D';
else
    DialedNum = 'p';
end

Contact us at files@mathworks.com