📄 testsystem.m
字号:
clear;numSamplesPerSymbol = 4;BitRate = 48600;BaudRate = BitRate/2;SymbolDuration = 1/BaudRate;SamplingFrequency = numSamplesPerSymbol*BaudRate;Alpha = 0.25;nIters = 10;
LogEbNo = [0 1 2 3 4 5];lenSim = length(LogEbNo);% <-- Complete the filter construction part first -->hTransmitFilter = ones(1,numSamplesPerSymbol);
hReceiveFilter = hTransmitFilter;% <-- System test begins -->for EbNoIndex = 1:lenSim for iters = 1:nIters BitStreamLength = 4000; BitStream = randn(1,BitStreamLength)>0.5; [BitStreamOne, BitStreamTwo] = SerialToParallel(BitStream); [I_SymbolsTx, Q_SymbolsTx] = DQPSKEncoder(BitStreamOne, BitStreamTwo); [I_WaveformTx, Q_WaveformTx] = TransmitFilter(I_SymbolsTx, Q_SymbolsTx, hTransmitFilter, numSamplesPerSymbol); EbNo = 10^(LogEbNo(EbNoIndex)/10); Eb1 = sum(I_WaveformTx.*I_WaveformTx)/(BitStreamLength); Eb2 = sum(Q_WaveformTx.*Q_WaveformTx)/(BitStreamLength); No = (Eb1+Eb2)/EbNo;
[I_WaveformRx,Q_WaveformRx] = AWGNChannel(I_WaveformTx,Q_WaveformTx,No); [I_SymbolsRx,Q_SymbolsRx] = ReceiveFilter(I_WaveformRx,Q_WaveformRx,hReceiveFilter,numSamplesPerSymbol); [BitStreamOneRx,BitStreamTwoRx] = DQPSKDecoder(I_SymbolsRx,Q_SymbolsRx); BitStreamRx = ParallelToSerial(BitStreamOneRx,BitStreamTwoRx); Errors = sum(BitStream~=BitStreamRx); BER(iters) = Errors/BitStreamLength; end AvBER(EbNoIndex) = sum(BER)/nItersendsemilogy(LogEbNo,AvBER);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -