⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 run.m

📁 DSP 5409 plc应用程序,调试通过,是用在电力线通讯上的演示程序.
💻 M
字号:
%  Run the PLC modem
%
%  Change History
%	28Feb03	Hagen	Changed to remove 'agc' call to modem.dll
%	13Jun03	Hagen	Added try/catch around mex receive call and added agc diag plots
%	23Jan04	Hagen	add switch for various data sources

dataSource = 1;

%---- create the transmitted signal ----------------------------------
parm = modem('parm');

switch dataSource
case 1
    udata =  round(256*rand(1,parm.NUM_USER_BYTES)-0.5);
case 2
    if ~exist('udata')
        udata =  round(256*rand(1,parm.NUM_USER_BYTES)-0.5);
    end
case 3
    udata = zeros(1,parm.NUM_USER_BYTES);
end

%disp('generating xmit waveform')
tx = modem('xmit', udata);
disp(sprintf('xmit waveform generated.  Power = %.3f', std(tx) ))

%---- model the channel --------------------------------------------
if ~exist('snr')
    snr = 25;
end

disp(sprintf('sim channel. SNR = %.1f', snr(1) ))
%ec = ofdm_chan( tx, snr(1), [1 0 0 0 .0001] );
rec = ofdm_chan( tx, snr(1) );

%---- decode the data -----------------------------------------------
disp('receiving signal')

try
    [err, rdata, rxagc] = modem('rec', rec); % do receive function
    disp(sprintf('parity checksum = %.0f', err))
catch
    disp(lasterr)
    rdata = [];
    rxagc = [];
end


%---- display the userData bytes -----------------------------
errCnt = 0;
for( n = 1 : min([length(rdata) length(udata)]) )
	if( udata(n) ~= rdata(n) )
		disp(sprintf('%3.0f   x%02X  x%02X', n-1, udata(n), rdata(n) ))
		errCnt = errCnt+1;
	end
	if( errCnt > 20 )
		break;
	end
end

return

%---- display packet detect diagnoistics -------------------------
if exist( 'snrDiag' )
    ix = find(abs(snrDiag(1,:)) > 2); 
    N = ix(end);
    
    figure(1);
    subplot(4,1,1)
    plot(snrDiag(1,1:N))
    ylabel('signal')
    
    subplot(4,1,2)
    plot(snrDiag(2,1:N))
    ylabel('pre count')
    
    subplot(4,1,3)
    plot(snrDiag(3,1:N))
    ylabel('agc gain')
    
    subplot(4,1,4)
    plot(snrDiag(4,1:N))
    ylabel('dd phase')
    xlabel('samples')
end    
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -