現在この質問をフォロー中です
- フォローしているコンテンツ フィードに更新が表示されます。
- コミュニケーション基本設定に応じて電子メールを受け取ることができます。
Increase of data symbols from 32 to another number for OFDM TX/RX example
2 ビュー (過去 30 日間)
古いコメントを表示
Hello,
I am using OFDM TX/RX example of matlab simulink with HDL coder.
For the given working example:
Number of data symbos is fixed to 32 that is working while pluging tx and rx back-to-back.
I have header CRC and data CRC pass.
But, as I try to increase these symbols to another number (e.g. 34) data crc fails for all symbols however header CRC pass.
Actually, there are many forced constants in the simulink model that gives the impression that it is not a scalable model or I might not have understood correctly how the number of data symbols can make DATA crc fails, when the trBlkSize is correctly calculated.
Any help will be appreciated.
Thanks in advance.
Regards,
Vaibhav
採用された回答
Karthik Akula
2022 年 11 月 23 日
Hi Vaibav,
The number of data symbols is fixed to 32. Many hardcoded values that rely on number of data symbols are computed with 32. We need to scan through the model and make nesessary changes (may require structural changes in simulink, most likely in Data Recovery subsystem and frame length in the timing recovery) to make it work for 34. As the example is developed with 32 a fixed value, the tunability of this value was never considered.
Please use the matlab version of the example https://in.mathworks.com/help/wireless-hdl/ug/hdlofdmmatlabreferences.html to modify the functions whdlexamples.OFDMTx and whdlexamples.OFDMRx to make sure the functionality is good, and proceed to simulink.
20 件のコメント
Vaibhav BHATNAGAR
2022 年 11 月 23 日
Hello Karthik,
Many thanks for your reply and for the information.
Actually, I got success in changing the number of data symbols parameter (in current example design [you also mentioned] and in my model ) at all the visible places and at one hidden mask in the data recovery model (snapshot attached). Now it is working atleast for smaller values like 34, 64 etc, I do not know the limit for example 1024 it does not work (it is difficult to debug due to very long simulation time).
On the other hand, there are still many calculations, constant delays, latencies exist in the model that are not clear for example in Header recovery/Sybsytem (snapshot attached for few examples).
Do you think it will be easier to change number of data subcarriers and number pilot in the design?
I wish you a great day ahead.
Best regards,
Vaibhav
Karthik Akula
2022 年 11 月 24 日
Vaibhav,
Great to hear that! You can change the number of data subcarriers but not to increase beyond a limit. It is generally expected the guard band in OFDM symbols to be null carriers. Well, I can't tell you what is the limit but you can simulate and find out what max value is suitable for your applications. It's best to check first with no channel impairments, followed by your use case of channel impairments.
You can modify the pilots length and locations as per your choice, but make sure you generate the proper indices (in MATLAB version) and pilot valid signal at those indices (in Simulink version). It is generally expected the pilots are equi-spaced and covers complete OFDM symbol. Note that the pilots are used to correct the CPE impairment. Lesser the pilots, less is the averaging, less is the CPE estimate accuracy.
Vaibhav BHATNAGAR
2022 年 11 月 25 日
Hello Karthik,
Thanks again for your feedback.
I am looking in to the model in details for further changes.
But again there are many numbers which are not very clear.
For example, I am trying to increase number of data subcarriers to 84 or 96 but I see there are index conflicts in OFDM_Tx.m script e.g. at line 232 due to the:"headerConvOut" variable at line 221 (snapshot attached).
line221:-> headerConvOut = convenc([headerCRCOut, zeros(1,headerConvK-1)],poly2trellis(headerConvK,headerConvCode)); % Terminated Mode
Do you know why output of thie convenc function is of 1x72?
Moreover, generateOFDMSyncSignal.m function is not very clear, how can I adapt the zcRootIndex and seqLen as per my application requirement.
I appreciate your time and support.
Best regards,
Vaibhav
Karthik Akula
2022 年 11 月 25 日
Hi Vaibav,
The convenc performs convolutional encoding. As per the trellis defined, it performs half code rate. It means for 1 bit it gives 2 bits as output, so if the input is of length 36, it will give you 72 output.
Regarding generateOFDMSyncSignal, I dont know your application requirement. what is it you are trying to adapt in it?
Vaibhav BHATNAGAR
2022 年 11 月 25 日
Hello Karthik,
Thanks for the explanation.
For OFDMSyncSignal, what it represents ZCRootIndex=25, and SeqLen=62?
At this point of time, I am not changing the synchronization sequence size but I want to clarify these two parameters for the future use.
-Vaibhav
Karthik Akula
2022 年 11 月 25 日
Hi Vaibav,
You can search more on Zadoff-Chu Sequences. Root index and sequence are properties that characterize these sequences. We have no specific reason to choose those values. we only need to meet the CAZAC (Constant Amplitude Zero Auto-Correlation) requirement.. You can use any other sequence that meets this requirement.
Vaibhav BHATNAGAR
2022 年 11 月 25 日
Hello Karthik,
Yes you are right, in the model for 72 used data subcarrier a CAZAC seq of length 62 (SeqLen) is generated with 5 zeros both side that does a sum of 72 all together, as you explained ZCRootIndex=25 is the parameter to obtained a perferct sequence that produces perfect auto-correlation.
I may keep the same CAZAC sequence and add more zeros as per requirement of data subcarriers.
I can read more about CAZAC sequence thanks.
I have two more questions to ask*:
- The delays in the model like in OFDM_RX\Channel and CPE Estimation and Correction\Channel Estimation and Equalization\Channel Equalization block in OFDM_RX (snapshot attached) has some relation with other OFDM parameters?
2. In OFDM_RX\Synchronization and OFDM Demodulation\Frame Controller block, there is one OR condition at the endin port of sample discard contoller (snapshot attached). Do you know the purpose of this OR block. With this OR condition it was diffiult to keep the OFDM_Rx synchronized between two independent hardwares.
Highly appreciate you so far for your answers.
BR./
Vaibhav
Vaibhav BHATNAGAR
2023 年 2 月 2 日
Hello Karthik,
I need your help once again. I want to increase the QAM constellatino to 256, however it is fixed till 64 in the OFDM TX/RX model.
I adapted the simulink model but there are many header fails since I increased the header bits from 2 to 3.
Before, I investigate more in the Simulin Model, I tried to run the two scripts OFDM_tx and OFDM_rx, where it seems almost working except I do not have a grey code based symbolMapping table for QAM-256 that should be added in OFDMSymbolDemodulate.m and its complement that required in OFDMSymbolModulate.m.
Could you please look at the attached images and let me know if you can help me with this.
Thanks in advance.
Karthik Akula
2023 年 2 月 3 日
From my understanding, you might be facing issues in header bits packing or symbol bits mapping.
Symbol bits mapping:
For the bits mapping in symbol modulator please take a look at LTE standard TS 36.211. LTE symbol Modulator/Demodulator is used in this example
Header bits packing:
The header bits packing is (((3+2+2+7)+16)+6)*2 = 72 which is (((fftbits+modtypebits+coderatebits+reservebits)+CRCbits)+terminatedModeBits)*derivedfromCodeRate. For reconstruction appropriate number of bits are manipulated to construct header info in the "whdlOFDMRx/Header and Data Recovery/Extract System Parameters" subsystem. If there is a change in this pattern then modify this subsystem to pick appropriate bits. As the entire computation should result in 72 you can try (((3+3+2+6)+16)+6)*2 = 72 pattern for increasing modtype to 3 bits.
Hope this helps.
Vaibhav BHATNAGAR
2023 年 2 月 3 日
Hello Karthik,
Many thanks for your response specially for Symbol bits mapping standard reference.
For the header bits increase and pattern change, I have adapted the header bits at TX and RX side as you mentioned as well (Thx for details).
But, it is working good for any constellation other than 64 :(, and I succesfully get other information as well.
For constellation 256, I have few header fail and few header pass.
I am sending you the snapshots of headerbits related modifs attached herewith.
Karthik Akula
2023 年 2 月 6 日
Please work with no channel conditions (no noise, no CFO etc) to debug. The header is BPSK modulated. so irrespective of the bits information, the processing works same for all the cases. The snapshots looks fine to me, but some mistakes can be spotted through logic analyzer only. Please log the Header information MATLAB function at Tx side and input of the Extract system Parameters subsystem on Rx side and see if header pattern is as expected both sides with that of what you are intended to do.
Vaibhav BHATNAGAR
2023 年 2 月 6 日
Hello Karthik,
Thansk for your reply and suggestions. It is on going....
Regarding constellation QAM-256, I found the grey code mapping in the script lteSymbolDemodulate.m that is as follows:
symbolMapping = [191 190 186 187 171 170 174 175 239 238 234 235 251 250 254 255 189 188 184 185 169 168 172 173 237 236 232 233 249 248 252 253 181 180 176 177 161 160 164 165 229 228 224 225 241 240 244 245 183 182 178 179 163 162 166 167 231 230 226 227 243 242 246 247 151 150 146 147 131 130 134 135 199 198 194 195 211 210 214 215 149 148 144 145 129 128 132 133 197 196 192 193 209 208 212 213 157 156 152 153 137 136 140 141 205 204 200 201 217 216 220 221 159 158 154 155 139 138 142 143 207 206 202 203 219 218 222 223 31 30 26 27 11 10 14 15 79 78 74 75 91 90 94 95 29 28 24 25 9 8 12 13 77 76 72 73 89 88 92 93 21 20 16 17 1 0 4 5 69 68 64 65 81 80 84 85 23 22 18 19 3 2 6 7 71 70 66 67 83 82 86 87 55 54 50 51 35 34 38 39 103 102 98 99 115 114 118 119 53 52 48 49 33 32 36 37 101 100 96 97 113 112 116 117 61 60 56 57 41 40 44 45 109 108 104 105 121 120 124 125 63 62 58 59 43 42 46 47 111 110 106 107 123 122 126 127];
And I adapted to my script OFDMSymbolDemodulat.m accordingly as shown in the attached figure.
But, I always have header failed when I used pure OFDMTx and OFDMRx script.
I adapted header and it passes.
I appreciate if you could look in to OFDMSymbolDemodulate part, and confirm it is correct?
Thanks in advance.
Karthik Akula
2023 年 2 月 8 日
I think they are not correct, you might have tried to interpret the pattern. But if you have access to LTE toolbox, you can use lteSymbolDemodulate directly in OFDMSymbolDemodulate.
Dharma Bade
2023 年 2 月 8 日
Hello Vaibhav,
For 256-QAM, the equations used are incorrect. You have used 6,4,2 in those equations, instead it has to be 8,4,2 in the equations from line 50 to 55.
Hope that helps.
Best Regards,
Dharma.
Vaibhav BHATNAGAR
2023 年 2 月 8 日
Hello Dharma,
Many thanks for your reply and suggestions.
I did the neccessary changes in OFDMSymbolDemodulate script as per your suggestions, but it still fails.
I am looking in to it. I am checking with LTESymboldDemodulate.
Best regards,
Vaibhav
Vaibhav BHATNAGAR
2023 年 2 月 8 日
Hello Karthik Dharma,
Many thanks for your response. and suggestions.
I had a problem of LTE toolbox license, I solved recently.
By replacing LTESymbolDemodulate with OFDMSymbolDemodulate, it worked for QAM256 and also for QAM1024 using OFDMTx and OFDMRx scripts.
I am still digging more into Simulink model, Header CRC does not pass.
Best regards,
Vaibhav
Rik
2023 年 2 月 9 日
@Vaibhav BHATNAGAR flags are meant to attract the attention of site admins, not to mark the accepted answer. To do so, you can use the button next to the answer.
It is possible to move a comment to be an answer. Should that be done here?
Vaibhav BHATNAGAR
2023 年 3 月 16 日
Hello,
I have a question regarding LTE symbol modulator and demodulator used on OFDM TX RX example.
Are they limited to QAM-256 or they can go till 1024 QAM?
If LTE symbol mod/demod dont support constellation other than QAM-256 is there any other equivalent block that can work with the compatibility of HDL coder.
Thanks in advance.
Karthik Akula
2023 年 3 月 17 日
LTE Symbol mod/demod does not support more than that. 1024 QAM is not used any where/ we didn't find any use case for that. So we dont have any block that does 1024 QAM compatible with HDL coder.
Vaibhav BHATNAGAR
2023 年 3 月 17 日
Ok well heared.
Actually, our application is wireline.
Thanks in anyways.
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!エラーが発生しました
ページに変更が加えられたため、アクションを完了できません。ページを再度読み込み、更新された状態を確認してください。
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
アジア太平洋地域
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)