Инициализируйте переменные и поддерживающие объекты
Чтобы сравнить компенсируемый выход, постройте созвездия с помощью кода, такие как:
Используйте LMS-алгоритм с линейным эквалайзером
Сконфигурируйте lineareq
и comm.LinearEqualizer
объекты с сопоставимыми настройками. LeakageFactor
свойство было удалено из LMS-алгоритма. comm.LinearEqualizer
Система object™ принимает, что фактор утечки всегда равняется 1.
eqOld =
EqType: 'Linear Equalizer'
AlgType: 'LMS'
nWeights: 5
nSampPerSym: 1
RefTap: 1
SigConst: [0.7071 + 0.7071i -0.7071 + 0.7071i -0.7071 - 0.7071i 0.7071 - 0.7071i]
StepSize: 0.0500
LeakageFactor: 1
Weights: [0 0 0 0 0]
WeightInputs: [0 0 0 0 0]
ResetBeforeFiltering: 1
NumSamplesProcessed: 0
eqNew = comm.LinearEqualizer with properties:
Algorithm: 'LMS'
NumTaps: 5
StepSize: 0.0500
Constellation: [0.7071 + 0.7071i -0.7071 + 0.7071i -0.7071 - 0.7071i 0.7071 - 0.7071i]
ReferenceTap: 1
InputDelay: 0
InputSamplesPerSymbol: 1
TrainingFlagInputPort: false
AdaptAfterTraining: true
InitialWeightsSource: 'Auto'
WeightUpdatePeriod: 1
Вызовите эквалайзеры.
Используйте алгоритм RLS с линейным эквалайзером
Сконфигурируйте lineareq
и comm.LinearEqualizer
объекты с сопоставимыми настройками.
eqOld =
EqType: 'Linear Equalizer'
AlgType: 'RLS'
nWeights: 5
nSampPerSym: 1
RefTap: 1
SigConst: [0.7071 + 0.7071i -0.7071 + 0.7071i -0.7071 - 0.7071i 0.7071 - 0.7071i]
InvCorrInit: 0.1000
InvCorrMatrix: [5×5 double]
Weights: [0 0 0 0 0]
WeightInputs: [0 0 0 0 0]
ResetBeforeFiltering: 1
NumSamplesProcessed: 0
eqNew = comm.LinearEqualizer with properties:
Algorithm: 'RLS'
NumTaps: 5
ForgettingFactor: 0.9500
InitialInverseCorrelationMatrix: 0.1000
Constellation: [0.7071 + 0.7071i -0.7071 + 0.7071i -0.7071 - 0.7071i 0.7071 - 0.7071i]
ReferenceTap: 1
InputDelay: 0
InputSamplesPerSymbol: 1
TrainingFlagInputPort: false
AdaptAfterTraining: true
InitialWeightsSource: 'Auto'
WeightUpdatePeriod: 1
Вызовите эквалайзеры. Когда ResetBeforeFiltering
установлен в true
, каждый вызов equalize
возразите сбрасывает эквалайзер. Чтобы получить эквивалентное поведение вызывают reset
после каждого вызова comm.LinearEqualizer
объект.
Сконфигурируйте lineareq
и comm.LinearEqualizer
объекты с сопоставимыми настройками. Для comm.LinearEqualizer
объект, набор начальная матрица обратной корреляции к eye(5)*0.2
.
eqOld =
EqType: 'Linear Equalizer'
AlgType: 'RLS'
nWeights: 5
nSampPerSym: 1
RefTap: 1
SigConst: [0.7071 + 0.7071i -0.7071 + 0.7071i -0.7071 - 0.7071i 0.7071 - 0.7071i]
InvCorrInit: 0.1000
InvCorrMatrix: [5×5 double]
Weights: [0 0 0 0 0]
WeightInputs: [0 0 0 0 0]
ResetBeforeFiltering: 1
NumSamplesProcessed: 0
eqNew = comm.LinearEqualizer with properties:
Algorithm: 'RLS'
NumTaps: 5
ForgettingFactor: 0.9500
InitialInverseCorrelationMatrix: [5×5 double]
Constellation: [0.7071 + 0.7071i -0.7071 + 0.7071i -0.7071 - 0.7071i 0.7071 - 0.7071i]
ReferenceTap: 1
InputDelay: 0
InputSamplesPerSymbol: 1
TrainingFlagInputPort: false
AdaptAfterTraining: true
InitialWeightsSource: 'Auto'
WeightUpdatePeriod: 1
Вызовите эквалайзеры. Когда ResetBeforeFiltering
установлен в true
, каждый вызов equalize
возразите сбрасывает эквалайзер. Чтобы получить эквивалентное поведение вызывают reset
после каждого вызова comm.LinearEqualizer
объект.
Используйте алгоритм CMA с линейным эквалайзером
Сконфигурируйте lineareq
и comm.LinearEqualizer
объекты с сопоставимыми настройками. LeakageFactor
свойство было удалено из LMS-алгоритма. comm.LinearEqualizer
Система object™ принимает, что фактор утечки всегда равняется 1.
eqOld =
EqType: 'Linear Equalizer'
AlgType: 'Constant Modulus'
nWeights: 5
nSampPerSym: 1
SigConst: [0.7071 + 0.7071i -0.7071 + 0.7071i -0.7071 - 0.7071i 0.7071 - 0.7071i]
StepSize: 0.0500
LeakageFactor: 1
Weights: [1 0 0 0 0]
WeightInputs: [0 0 0 0 0]
ResetBeforeFiltering: 1
NumSamplesProcessed: 0
eqNew = comm.LinearEqualizer with properties:
Algorithm: 'CMA'
NumTaps: 5
StepSize: 0.0500
Constellation: [0.7071 + 0.7071i -0.7071 + 0.7071i -0.7071 - 0.7071i 0.7071 - 0.7071i]
ReferenceTap: 1
InputSamplesPerSymbol: 1
AdaptWeightsSource: 'Property'
AdaptWeights: true
InitialWeightsSource: 'Auto'
WeightUpdatePeriod: 1
Вызовите эквалайзеры.
Используйте линейные эквалайзеры, рассматривая задержки сигнала
Сконфигурируйте lineareq
и comm.LinearEqualizer
объекты с сопоставимыми настройками. Передача и получает результат фильтров в задержке сигнала между транзитом и получает сигналы. Объясните эту задержку путем установки RefTap
свойство lineareq
к значению близко к значению задержки в выборках. Кроме того, nWeights
должен быть установлен в значение, больше, чем RefTap
.
eqOld =
EqType: 'Linear Equalizer'
AlgType: 'LMS'
nWeights: 16
nSampPerSym: 2
RefTap: 13
SigConst: [0.7071 + 0.7071i -0.7071 + 0.7071i -0.7071 - 0.7071i 0.7071 - 0.7071i]
StepSize: 0.0100
LeakageFactor: 1
Weights: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
WeightInputs: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
ResetBeforeFiltering: 1
NumSamplesProcessed: 0
eqNew = comm.LinearEqualizer with properties:
Algorithm: 'LMS'
NumTaps: 16
StepSize: 0.0100
Constellation: [0.7071 + 0.7071i -0.7071 + 0.7071i -0.7071 - 0.7071i 0.7071 - 0.7071i]
ReferenceTap: 13
InputDelay: 0
InputSamplesPerSymbol: 2
TrainingFlagInputPort: false
AdaptAfterTraining: true
InitialWeightsSource: 'Auto'
WeightUpdatePeriod: 1
Вызовите эквалайзеры. Когда ResetBeforeFiltering
установлен в true
, каждый вызов equalize
возразите сбрасывает эквалайзер. Чтобы получить эквивалентное поведение вызывают reset
после каждого вызова comm.LinearEqualizer
объект.
В comm.LinearEqualizer
объект, InputDelay
используется, чтобы синхронизироваться с задержанным сигналом. NumTaps
и ReferenceTap
независимы от значения задержки. Мы можем сократить количество касаний путем использования InputDelay
синхронизироваться вместо ссылочного касания. Сокращение количества касаний также уменьшает эквалайзер сам шум.
eqNew = comm.LinearEqualizer with properties:
Algorithm: 'LMS'
NumTaps: 11
StepSize: 0.0100
Constellation: [0.7071 + 0.7071i -0.7071 + 0.7071i -0.7071 - 0.7071i 0.7071 - 0.7071i]
ReferenceTap: 6
InputDelay: 12
InputSamplesPerSymbol: 2
TrainingFlagInputPort: false
AdaptAfterTraining: true
InitialWeightsSource: 'Auto'
WeightUpdatePeriod: 1