Kindly help me for question of DTMF decoding, i am stuck in it
2 次查看(过去 30 天)
显示 更早的评论
This is question. The next objective is decoding - a process that requires a binary decision on the presence or absence of the individual frequencies. In order to make the signal detection an automated process, we need a score function that rates the different possibilities. (a) Complete the dtmfscor function based on the skeleton given in Table 2. Assume that the input signal xx to the dtmfscor function is actually a short segment from the DTMF signal. The task of breaking up the signal so that each segment corresponds to one key will be done by another function prior to calling dtmfscor. The implementation of the FIR bandpass filter is done with the conv function. The running time of the convolution function is proportional to the filter length L. Therefore, the filter length L must satisfy two competing constraints: L should be large so that the bandwidth of the band pass filter is narrow enough to isolate individual DTMF frequencies, but making it too large will cause the program to run slowly.
Table 2: Skeleton of the dtmfscor.m function
function ss = dtmfscor(xx, freq, L, fs)
%DTMFSCOR
% ss = dtmfscor(xx, freq, L, [fs])
% returns 1 (TRUE) if freq is present in xx
% 0 (FALSE) if freq is not present in xx
%
% xx = input DTMF signal
% freq = test frequency
% L = length of FIR bandpass filter
% fs = sampling freq (DEFAULT is 8000)
%
% The signal detection is done by filtering xx with a length L
% BPF, hh, squaring the output, and comparing with an arbitrary
% setpoint based on the average power of xx.
%
if (nargin < 4), fs = 8000; end;
hh = % define the bandpass filter coeffs here
ss = (mean(conv(xx,hh).^2) > mean(xx.^2)/5);
Plz help me how to go about it Thanks a lot
回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 DTMF 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!