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

📄 geo.m

📁 多载波调制的仿真程序
💻 M
字号:
%GEO Geometric TEQ design.(x,y,n,Nb,Nw,N,minDelay,maxDelay,MSEmax,Buec)% [B, W, D, MSE, Dv] = GEO(X, Y, N, Nb, Nw, NN, Dmin, Dmax, MSEmax, Buec)% returns the optimal target impulse response B, time domain % equalizer W, and delay D. Optimal is in the sense of maximizing% the approximate geometric SNR. MSE is the resulting mean-squared % error. Dv is a vector containing the mean-squared error for delay% values between Dmin and Dmax.%% X is the transmitted data vector. Y is the received data vector% (without channel noise). N is the channel noise vector. Nb is the % number of taps in the target impulse response and Nw the number of % taps in the time domain equalizer. NN is the FFT size in the discrete% multitone modulation. Dmin and Dmax define the search interval for % the optimal delay. MSEmax the upperbound on the mean-squared error. % Buec is the starting point for the nonlinear constraint optimization% required to find the optimal TEQ.%% NOTE: The Mathworks Optimization Toolbox is required to run this% function. The 'constr' is used from the Optimization toolbox.% Optimization Toolbox Version 1.5.1 has been used in this function%% The design method is from:% N. Al-Dhahir and J. M. Cioffi, "Optimum finite-length equalization% for multicarrier transceivers", IEEE Trans. on Comm., vol 44. % pp. 56-63, Jan. 1996.% Copyright (c) 1999-2002 The University of Texas% All Rights Reserved.%  % This program is free software; you can redistribute it and/or modify% it under the terms of the GNU General Public License as published by% the Free Software Foundation; either version 2 of the License, or% (at your option) any later version.%  % This program is distributed in the hope that it will be useful,% but WITHOUT ANY WARRANTY; without even the implied warranty of% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the% GNU General Public License for more details.%  % The GNU Public License is available in the file LICENSE, or you% can write to the Free Software Foundation, Inc., 59 Temple Place -% Suite 330, Boston, MA 02111-1307, USA, or you can find it on the% World Wide Web at http://www.fsf.org.%  % Programmers:	Guner Arslan% Version:        @(#)geo.m	1.5	11/25/00% % The authors are with the Department of Electrical and Computer% Engineering, The University of Texas at Austin, Austin, TX.% They can be reached at arslan@ece.utexas.edu.% Guner Arslan is also with the Embedded Signal Processing% Laboratory in the Dept. of ECE., http://anchovy.ece.utexas.edu.function [b,w,d,mmse,delayVec]=geo(x,y,Nb,Nw,N,minDelay,maxDelay,MSEmax,Buec,bf,used)% initialize variablesMMSE = inf;VAL = inf;opt = foptions;opt(14) = 200*Nb;%opt(2) = 1e-4;%opt(3) = 1e-4;binit = Buec;delayVec = ones(1,maxDelay); used = [0 ones(1,N/2-1) 0] == 1;% calculate the input-output auto and cross correlations[Rxx,Ryy,rxy,L] = correlations(x,y,maxDelay,Nb,Nw);% open a figure for progress barif bf == 1[figHndl statusHndl] = setprogbar('Calculating Geometric TEQ ...');     endfor delay = minDelay:maxDelay % for each delay to be searched  % update progress bar  if bf == 1     updateprogbar(statusHndl,delay-minDelay+1,maxDelay-minDelay);  end  % solve the eigenvalue problem (note eigen running just for one delay  [bopt, wopt, dopt, MSE, Rxy] = eigen(Rxx,Ryy,rxy,delay,delay,Nb,Nw,L);  % calculate the MSE matrix  Rd = Rxx - Rxy*inv(Ryy)*Rxy';  VAL = objective(binit,minDelay,N,Rd,MSE,MSEmax,used);  % solve the constraint optimization problem with the toolbox  bo = constr('objective',binit,opt,[],[],[],delay,N,Rd,MSE,MSEmax,used);  % calculate the mean-squared error  mmse = bo'*Rd*bo;  % get the value of the objective function for the current TIR  val = objective(bo,delay,N,Rd,MSE,MSEmax,used);  % save the MSE for this delay  delayVec(delay) = val;   if (VAL > val) % if the current objective is lower then previous ones	% save the current target, delay, objective, MSE, and 	% cross-correlation matrix	b = bo;	d = delay;	VAL = val;	MMSE = mmse;	Rxyopt = Rxy;  endend% use the optimum target impulse response to find the optimum TEQw = inv(Ryy)*Rxyopt'*b; % close progress barif bf == 1   close(figHndl);end

⌨️ 快捷键说明

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