theory silas diss
This commit is contained in:
@@ -300,8 +300,8 @@ classdef Filter < handle
|
||||
xline(fcut_,'LineStyle',':','LineWidth',1,'HandleVisibility','off','Color',p.Color);
|
||||
yline([-3, -6, -9],'LineStyle',':','LineWidth',1,'HandleVisibility','off');
|
||||
|
||||
xlim([0 fc.*2].*1e-9);
|
||||
ylim([ninedB-6, 2]);
|
||||
% xlim([0 fc.*2].*1e-9);
|
||||
% ylim([ninedB-6, 2]);
|
||||
legend
|
||||
|
||||
end
|
||||
|
||||
1
Functions/Theory/Dissertation/PD/100ghz_pd.json
Normal file
1
Functions/Theory/Dissertation/PD/100ghz_pd.json
Normal file
File diff suppressed because one or more lines are too long
1094
Functions/Theory/Dissertation/PD/100ghz_pd_bandwidth.csv
Normal file
1094
Functions/Theory/Dissertation/PD/100ghz_pd_bandwidth.csv
Normal file
File diff suppressed because it is too large
Load Diff
189
Functions/Theory/Dissertation/PD/100ghz_pd_responsivity.csv
Normal file
189
Functions/Theory/Dissertation/PD/100ghz_pd_responsivity.csv
Normal file
@@ -0,0 +1,189 @@
|
||||
1271; 0,3822390561953123
|
||||
1271,5; 0,38419930758242105
|
||||
1272; 0,3863702270698115
|
||||
1272,5; 0,38866381361008207
|
||||
1273; 0,3879395121421424
|
||||
1273,5; 0,3908144071258651
|
||||
1274; 0,38941324484667683
|
||||
1274,5; 0,3886482390643653
|
||||
1275; 0,3871744844466787
|
||||
1275,5; 0,3819131706099883
|
||||
1276; 0,3825696588771148
|
||||
1276,5; 0,38164278490690173
|
||||
1277; 0,3793811681135283
|
||||
1277,5; 0,3810969321121832
|
||||
1278; 0,38561783928242943
|
||||
1278,5; 0,38908016962932246
|
||||
1279; 0,3960805723111348
|
||||
1279,5; 0,39776514973186317
|
||||
1280; 0,3983882080762364
|
||||
1280,5; 0,3989277489532531
|
||||
1281; 0,3953941895319796
|
||||
1281,5; 0,39648781234375075
|
||||
1282; 0,3966742531971841
|
||||
1282,5; 0,4002652938704556
|
||||
1283; 0,40694867274287283
|
||||
1283,5; 0,41253621540584107
|
||||
1284; 0,42331258033724095
|
||||
1284,5; 0,43077624043193397
|
||||
1285; 0,4393232961230962
|
||||
1285,5; 0,44562110387213405
|
||||
1286; 0,4486108628977331
|
||||
1286,5; 0,4511055411347422
|
||||
1287; 0,4470620968166301
|
||||
1287,5; 0,4429754327671611
|
||||
1288; 0,4369760292430348
|
||||
1288,5; 0,4313232143283202
|
||||
1289; 0,4297225921323986
|
||||
1289,5; 0,42752981686391456
|
||||
1290; 0,42755873451486015
|
||||
1290,5; 0,42838607683209784
|
||||
1291; 0,4301647938813945
|
||||
1291,5; 0,430252773791754
|
||||
1292; 0,42983642955282675
|
||||
1292,5; 0,43082456782130385
|
||||
1293; 0,43010358194135434
|
||||
1293,5; 0,4286564203011507
|
||||
1294; 0,427551350387675
|
||||
1294,5; 0,4262216680056993
|
||||
1295; 0,4248061879636029
|
||||
1295,5; 0,42323824957412115
|
||||
1296; 0,42606502803639024
|
||||
1296,5; 0,42771450181627213
|
||||
1297; 0,4321631047010831
|
||||
1297,5; 0,43498514011363654
|
||||
1298; 0,43784261304613636
|
||||
1298,5; 0,4407749972159394
|
||||
1299; 0,4418422146980885
|
||||
1299,5; 0,44599734720216344
|
||||
1300; 0,44682291369874283
|
||||
1300,5; 0,44591438239702175
|
||||
1301; 0,4467439544276042
|
||||
1301,5; 0,4476723529309602
|
||||
1302; 0,44945964164622887
|
||||
1302,5; 0,451298649370644
|
||||
1303; 0,4555133819899133
|
||||
1303,5; 0,45932593779132214
|
||||
1304; 0,4641282326427819
|
||||
1304,5; 0,4660504121662704
|
||||
1305; 0,4672659916854359
|
||||
1305,5; 0,46826040808978875
|
||||
1306; 0,4672565627341473
|
||||
1306,5; 0,46494462666243797
|
||||
1307; 0,4614228682537902
|
||||
1307,5; 0,4594403315234107
|
||||
1308; 0,4567366055619595
|
||||
1308,5; 0,4543323943556662
|
||||
1309; 0,4531865329043713
|
||||
1309,5; 0,4531463334993213
|
||||
1310; 0,4549753124500232
|
||||
1310,5; 0,4563928182609638
|
||||
1311; 0,45807413408326114
|
||||
1311,5; 0,46008646903182826
|
||||
1312; 0,4625724677767604
|
||||
1312,5; 0,4642585362150724
|
||||
1313; 0,46443821082811676
|
||||
1313,5; 0,46431357981151344
|
||||
1314; 0,46266595309664715
|
||||
1314,5; 0,4634382042743632
|
||||
1315; 0,46336655819789074
|
||||
1315,5; 0,46220084770212755
|
||||
1316; 0,4621345192553813
|
||||
1316,5; 0,4619581088515051
|
||||
1317; 0,4622449432593938
|
||||
1317,5; 0,4634433901557192
|
||||
1318; 0,46570049058443497
|
||||
1318,5; 0,46746148714378144
|
||||
1319; 0,47051648811702607
|
||||
1319,5; 0,4736426053778652
|
||||
1320; 0,4752061192279773
|
||||
1320,5; 0,47672990706900487
|
||||
1321; 0,4792517016402914
|
||||
1321,5; 0,4804619217778243
|
||||
1322; 0,48045944968999643
|
||||
1322,5; 0,48044446341935276
|
||||
1323; 0,48033475585370833
|
||||
1323,5; 0,48149717921878865
|
||||
1324; 0,4825722899403748
|
||||
1324,5; 0,4815908698039817
|
||||
1325; 0,47971434550698255
|
||||
1325,5; 0,47939560128213987
|
||||
1326; 0,47928833048577313
|
||||
1326,5; 0,4780400467999897
|
||||
1327; 0,47648974188994153
|
||||
1327,5; 0,47504778426945493
|
||||
1328; 0,4767823647690562
|
||||
1328,5; 0,4796497575996306
|
||||
1329; 0,48149796255153543
|
||||
1329,5; 0,48293054311361827
|
||||
1330; 0,48577046817752123
|
||||
1330,5; 0,4879484457550308
|
||||
1331; 0,4890100791953129
|
||||
1331,5; 0,49009094527466934
|
||||
1332; 0,49064503921138825
|
||||
1332,5; 0,4912120163422964
|
||||
1333; 0,49112778494545795
|
||||
1333,5; 0,49082017761106833
|
||||
1334; 0,4891140575382411
|
||||
1334,5; 0,48897830241499407
|
||||
1335; 0,49041975188209885
|
||||
1335,5; 0,49289447360952865
|
||||
1336; 0,4941116428265213
|
||||
1336,5; 0,49433827868707936
|
||||
1337; 0,49545156946075475
|
||||
1337,5; 0,4964012858510567
|
||||
1338; 0,4976037918135337
|
||||
1338,5; 0,4975359556660308
|
||||
1339; 0,49750995144010873
|
||||
1339,5; 0,4979126497053521
|
||||
1340; 0,497475232138574
|
||||
1340,5; 0,49759401707965406
|
||||
1341; 0,4969075828334858
|
||||
1341,5; 0,49790859550840155
|
||||
1342; 0,4995926776094223
|
||||
1342,5; 0,5020720343160757
|
||||
1343; 0,5055918669106463
|
||||
1343,5; 0,5084877122557891
|
||||
1344; 0,5109238856077332
|
||||
1344,5; 0,5133476480224053
|
||||
1345; 0,5141099804906323
|
||||
1345,5; 0,5128794457064829
|
||||
1346; 0,5123127905211531
|
||||
1346,5; 0,5113593533744085
|
||||
1347; 0,5104375198088649
|
||||
1347,5; 0,5085465423276292
|
||||
1348; 0,5051624771364174
|
||||
1348,5; 0,5027410542553522
|
||||
1349; 0,5024260057256427
|
||||
1349,5; 0,5006762680057522
|
||||
1350; 0,4993251970666754
|
||||
1350,5; 0,49851742723413256
|
||||
1351; 0,4997497443709538
|
||||
1351,5; 0,5007398590455319
|
||||
1352; 0,5007983935913018
|
||||
1352,5; 0,49955251820707475
|
||||
1353; 0,4995544623158038
|
||||
1353,5; 0,5007503896118954
|
||||
1354; 0,500737054751544
|
||||
1354,5; 0,5007708386435341
|
||||
1355; 0,49980743334640554
|
||||
1355,5; 0,49964682618339445
|
||||
1356; 0,5007641635781113
|
||||
1356,5; 0,5010692724813779
|
||||
1357; 0,5017795860327432
|
||||
1357,5; 0,5018051896000885
|
||||
1358; 0,5018027877181053
|
||||
1358,5; 0,5024950398138555
|
||||
1359; 0,5037205512345401
|
||||
1359,5; 0,503981020991427
|
||||
1360; 0,50290329982148
|
||||
1360,5; 0,5017820667010949
|
||||
1361; 0,5029651424174117
|
||||
1361,5; 0,5021824944534237
|
||||
1362; 0,5007892395452416
|
||||
1362,5; 0,4997500743708827
|
||||
1363; 0,5006844796799776
|
||||
1363,5; 0,5020955167671433
|
||||
1364; 0,5059166193037108
|
||||
1364,5; 0,5043160514940865
|
||||
1365; 0,4996516521717823
|
||||
|
1
Functions/Theory/Dissertation/PD/70ghz_pd.json
Normal file
1
Functions/Theory/Dissertation/PD/70ghz_pd.json
Normal file
File diff suppressed because one or more lines are too long
336
Functions/Theory/Dissertation/PD/70ghz_pd_bandwidth.csv
Normal file
336
Functions/Theory/Dissertation/PD/70ghz_pd_bandwidth.csv
Normal file
@@ -0,0 +1,336 @@
|
||||
-7,105427357601002e-15; -0,20522295068752294
|
||||
0,19999999999999574; -0,030254119194939477
|
||||
0,39999999999998437; -0,06262230958084825
|
||||
0,5999999999999943; -0,044750988038462225
|
||||
0,79999999999999; -0,010697832675218066
|
||||
0,9999999999999929; -0,007716070877040071
|
||||
1,1999999999999886; -0,0034636603575668445
|
||||
1,3999999999999915; -0,0031910951680633737
|
||||
1,5999999999999943; -0,018902533473217353
|
||||
1,79999999999999; -0,053402356238265725
|
||||
1,9999999999999858; -0,016020039340308045
|
||||
2,1999999999999957; -0,03803455116762944
|
||||
2,3999999999999915; -0,027441706124275544
|
||||
2,5999999999999943; -0,011772163020613569
|
||||
2,799999999999997; -0,009307744420832709
|
||||
2,999999999999993; -0,004522003719798828
|
||||
3,1999999999999957; -0,004428713345979496
|
||||
3,3999999999999986; -0,004366538233070205
|
||||
3,6000000000000014; -0,004332966081604717
|
||||
3,8000000000000043; -0,004325484592115458
|
||||
3,999999999999993; -0,00434158146513397
|
||||
4,200000000000003; -0,004378744401192236
|
||||
4,3999999999999915; -0,004434461100823572
|
||||
4,599999999999994; -0,004506219264559075
|
||||
4,800000000000004; -0,004691539083670371
|
||||
5; -0,003991004145723398
|
||||
5,200000000000003; -0,003246645775397461
|
||||
5,3999999999999915; -0,0037896250865734338
|
||||
5,599999999999994; -0,023040865733948923
|
||||
5,799999999999997; -0,01989208568211387
|
||||
5,999999999999993; -0,0010096736725997424
|
||||
6,199999999999996; -0,013640471154773515
|
||||
6,399999999999999; -0,022016055829107817
|
||||
6,599999999999994; -0,02380673595648508
|
||||
6,799999999999997; -0,010201242210113204
|
||||
7; -0,004611668103098321
|
||||
7,200000000000003; -0,006761186983221812
|
||||
7,399999999999999; -0,014690649105665976
|
||||
7,600000000000001; -0,00390457347586759
|
||||
7,799999999999997; -0,045710767178201106
|
||||
8; -0,051072792534853306
|
||||
8,199999999999996; -0,07115209529133537
|
||||
8,399999999999991; -0,08208254896261469
|
||||
8,599999999999994; -0,03145294469160209
|
||||
8,799999999999997; -0,05983935104068827
|
||||
8,999999999999993; -0,03242609227466575
|
||||
9,199999999999996; -0,08006336213732856
|
||||
9,399999999999999; -0,07616115793078393
|
||||
9,599999999999994; -0,06914618045986609
|
||||
9,79999999999999; -0,0980170516533656
|
||||
9,999999999999979; -0,09444267414680585
|
||||
10,199999999999996; -0,1296597291950028
|
||||
10,399999999999999; -0,11722924677565816
|
||||
10,599999999999987; -0,1261332014641745
|
||||
10,799999999999983; -0,14295450195563753
|
||||
10,999999999999986; -0,13583779081780678
|
||||
11,199999999999989; -0,13655730701500968
|
||||
11,399999999999991; -0,1528394332576566
|
||||
11,59999999999998; -0,1455635480829094
|
||||
11,799999999999983; -0,15279717820688443
|
||||
11,999999999999986; -0,10865677433838528
|
||||
12,199999999999982; -0,08239755649864788
|
||||
12,39999999999997; -0,09832039720463737
|
||||
12,59999999999998; -0,09759344817184923
|
||||
12,799999999999983; -0,08609094120940997
|
||||
12,999999999999986; -0,13125303885294937
|
||||
13,199999999999982; -0,17127202835872835
|
||||
13,399999999999977; -0,17693756228526825
|
||||
13,599999999999987; -0,17588170560175698
|
||||
13,799999999999976; -0,21097131291045912
|
||||
13,999999999999979; -0,19723442280681303
|
||||
14,199999999999974; -0,17157649801758756
|
||||
14,399999999999977; -0,18397126413186138
|
||||
14,599999999999973; -0,22900338921732688
|
||||
14,799999999999969; -0,2093816161727191
|
||||
14,999999999999972; -0,19030766934459553
|
||||
15,199999999999974; -0,1930304944542227
|
||||
15,39999999999997; -0,16656555782418714
|
||||
15,599999999999959; -0,17578057654064638
|
||||
15,799999999999962; -0,18022738188194465
|
||||
15,999999999999964; -0,20411747466271102
|
||||
16,199999999999967; -0,24005694593094873
|
||||
16,39999999999997; -0,2409966294337953
|
||||
16,59999999999996; -0,23769655914941312
|
||||
16,79999999999996; -0,2461254200795704
|
||||
16,999999999999964; -0,18731174872333556
|
||||
17,199999999999967; -0,2088294036646947
|
||||
17,39999999999997; -0,26222359684914354
|
||||
17,59999999999996; -0,2627551021676209
|
||||
17,799999999999976; -0,23263650093640598
|
||||
17,99999999999995; -0,25096659518845055
|
||||
18,199999999999967; -0,28136295333973704
|
||||
18,399999999999956; -0,26386838346721
|
||||
18,599999999999945; -0,2697397873853724
|
||||
18,79999999999996; -0,27151761208872793
|
||||
18,99999999999995; -0,30006432628995094
|
||||
19,199999999999953; -0,32687710754417765
|
||||
19,39999999999997; -0,34133822014109505
|
||||
19,599999999999945; -0,35107178825199314
|
||||
19,79999999999996; -0,3207896032858475
|
||||
19,999999999999964; -0,3126066108279488
|
||||
20,199999999999953; -0,3015988268627865
|
||||
20,399999999999956; -0,32309268875395514
|
||||
20,59999999999996; -0,29037807883314093
|
||||
20,79999999999996; -0,2922929925308506
|
||||
20,99999999999995; -0,34985423889611633
|
||||
21,199999999999953; -0,36118780832491426
|
||||
21,399999999999956; -0,3251998242712628
|
||||
21,599999999999945; -0,2462767056035915
|
||||
21,799999999999933; -0,24441110825428503
|
||||
21,99999999999995; -0,2563960865160375
|
||||
22,19999999999994; -0,2437759650962339
|
||||
22,399999999999956; -0,22035942863831393
|
||||
22,59999999999996; -0,18593789159821306
|
||||
22,799999999999947; -0,1580165418909094
|
||||
22,99999999999995; -0,16755721915183486
|
||||
23,19999999999994; -0,20252844881319776
|
||||
23,399999999999913; -0,22661159302112166
|
||||
23,599999999999945; -0,24267584629923267
|
||||
23,799999999999933; -0,29043098079506846
|
||||
23,999999999999936; -0,32759458048731993
|
||||
24,19999999999994; -0,35261052927411507
|
||||
24,39999999999994; -0,4205920563168606
|
||||
24,599999999999945; -0,40505099517955756
|
||||
24,799999999999947; -0,39978925053876324
|
||||
24,999999999999936; -0,4143117703519099
|
||||
25,19999999999994; -0,4219338489372779
|
||||
25,399999999999928; -0,4610014796748456
|
||||
25,59999999999993; -0,47018850098853804
|
||||
25,799999999999947; -0,4491839028784197
|
||||
25,999999999999936; -0,4458017205576206
|
||||
26,199999999999925; -0,5003597628349712
|
||||
26,39999999999994; -0,5150256066968306
|
||||
26,599999999999916; -0,5045451019191436
|
||||
26,799999999999933; -0,5133285112874519
|
||||
26,999999999999922; -0,527155709897416
|
||||
27,19999999999994; -0,5140685424201781
|
||||
27,399999999999928; -0,49851201964752834
|
||||
27,599999999999916; -0,5137853037079538
|
||||
27,79999999999992; -0,5372179267072128
|
||||
27,999999999999936; -0,5680498018750453
|
||||
28,199999999999925; -0,5098792124208722
|
||||
28,399999999999928; -0,5261932637134765
|
||||
28,59999999999993; -0,5420533092094892
|
||||
28,799999999999933; -0,5905815675266202
|
||||
28,999999999999936; -0,6278889530493021
|
||||
29,19999999999991; -0,6751232569663901
|
||||
29,399999999999913; -0,6417648030574505
|
||||
29,599999999999916; -0,6296852646307589
|
||||
29,79999999999992; -0,6731708512242238
|
||||
29,999999999999908; -0,6766999836256802
|
||||
30,199999999999925; -0,6439858043186271
|
||||
30,399999999999928; -0,6626801183278261
|
||||
30,599999999999916; -0,6575261415486628
|
||||
30,79999999999992; -0,5997705615017357
|
||||
30,999999999999908; -0,5811412251277055
|
||||
31,19999999999994; -0,6232767821070331
|
||||
31,399999999999913; -0,6936652252154754
|
||||
31,599999999999902; -0,7251977840976562
|
||||
31,79999999999992; -0,756817987398668
|
||||
31,999999999999908; -0,7626095276161258
|
||||
32,199999999999925; -0,6998981751538662
|
||||
32,39999999999991; -0,6934363825152801
|
||||
32,599999999999916; -0,7182913332333944
|
||||
32,79999999999992; -0,6821687933338616
|
||||
32,99999999999992; -0,6663845829793131
|
||||
33,19999999999991; -0,6790941839387248
|
||||
33,399999999999956; -0,7261666896639514
|
||||
33,59999999999993; -0,7451168856292525
|
||||
33,79999999999995; -0,7934809742704192
|
||||
33,999999999999936; -0,7510223153439268
|
||||
34,19999999999994; -0,7443418303903386
|
||||
34,39999999999994; -0,7371085317015025
|
||||
34,599999999999945; -0,7272823230638554
|
||||
34,79999999999995; -0,7718051044043159
|
||||
34,99999999999995; -0,8073906768142964
|
||||
35,19999999999994; -0,7385956882940454
|
||||
35,399999999999956; -0,7160082880884686
|
||||
35,59999999999996; -0,7288095360695297
|
||||
35,79999999999996; -0,7236002865254121
|
||||
35,999999999999964; -0,7334442970172868
|
||||
36,19999999999997; -0,8346252066934827
|
||||
36,39999999999997; -0,8358944542314521
|
||||
36,59999999999996; -0,8009380638643022
|
||||
36,79999999999995; -0,7673865510270743
|
||||
36,99999999999998; -0,7199971905956084
|
||||
37,19999999999997; -0,7007463840971893
|
||||
37,399999999999984; -0,7387659310023729
|
||||
37,59999999999997; -0,721690739663293
|
||||
37,799999999999976; -0,657816129243038
|
||||
37,999999999999964; -0,6495576293842058
|
||||
38,20000000000001; -0,6597731574058532
|
||||
38,399999999999984; -0,672563855947323
|
||||
38,6; -0,6904033318178788
|
||||
38,79999999999999; -0,689336430830561
|
||||
39,00000000000002; -0,6117300762411118
|
||||
39,199999999999996; -0,5639205810793819
|
||||
39,40000000000001; -0,5983607766144563
|
||||
39,6; -0,5559212159038944
|
||||
39,80000000000002; -0,42213980065065204
|
||||
40,00000000000001; -0,41577016450588733
|
||||
40,20000000000004; -0,41077502582773695
|
||||
40,40000000000001; -0,4494641339488026
|
||||
40,600000000000044; -0,5314018055872878
|
||||
40,80000000000002; -0,641785834906464
|
||||
41,00000000000005; -0,7108648438969745
|
||||
41,200000000000024; -0,6859741311599707
|
||||
41,400000000000055; -0,7017068191441105
|
||||
41,60000000000003; -0,6791477498478518
|
||||
41,80000000000005; -0,653540590898162
|
||||
42,00000000000005; -0,6660836110606962
|
||||
42,20000000000007; -0,6129974635842999
|
||||
42,400000000000055; -0,5886674503992548
|
||||
42,60000000000007; -0,5864375705241724
|
||||
42,80000000000006; -0,5934101604542863
|
||||
43,000000000000064; -0,5971640717600168
|
||||
43,20000000000005; -0,687945370263789
|
||||
43,400000000000084; -0,826010895068702
|
||||
43,60000000000007; -0,8402202033545532
|
||||
43,80000000000009; -0,8155286496095027
|
||||
44,00000000000008; -0,7732529679765467
|
||||
44,20000000000008; -0,7804047850500297
|
||||
44,400000000000084; -0,7186911944635885
|
||||
44,6000000000001; -0,6952708619187691
|
||||
44,80000000000009; -0,6796908471847463
|
||||
45,00000000000011; -0,6791911674601883
|
||||
45,20000000000008; -0,750294196595163
|
||||
45,400000000000084; -0,8751930740148532
|
||||
45,6000000000001; -0,9276382447045544
|
||||
45,800000000000104; -0,9719742530818682
|
||||
46,00000000000011; -1,036079323202311
|
||||
46,20000000000011; -1,1181471052790317
|
||||
46,4000000000001; -1,0958490215727856
|
||||
46,60000000000013; -1,0625635604160188
|
||||
46,80000000000012; -1,0681184335495777
|
||||
47,00000000000011; -1,0491794786564261
|
||||
47,20000000000011; -1,0004949273189419
|
||||
47,40000000000013; -1,0264013117471569
|
||||
47,600000000000115; -0,9884102239645856
|
||||
47,80000000000013; -0,9894223247725593
|
||||
48,00000000000012; -1,0796700017398213
|
||||
48,20000000000014; -1,099628578912291
|
||||
48,40000000000011; -0,9509643943244526
|
||||
48,60000000000016; -0,9037231717547249
|
||||
48,80000000000013; -0,8528339219613446
|
||||
49,000000000000135; -0,858999004045224
|
||||
49,20000000000014; -0,9168300378510152
|
||||
49,400000000000155; -0,9577590379052632
|
||||
49,60000000000013; -0,999788695384078
|
||||
49,80000000000016; -1,0093627559760772
|
||||
50,00000000000015; -1,0138490875975479
|
||||
50,200000000000166; -1,0664495148931095
|
||||
50,400000000000155; -1,2154632152797502
|
||||
50,60000000000017; -1,1788818515429793
|
||||
50,800000000000146; -1,050269845638372
|
||||
51,00000000000019; -1,0622383145312964
|
||||
51,200000000000166; -1,1841450735158365
|
||||
51,4000000000002; -1,139376215918372
|
||||
51,60000000000017; -1,119440531745798
|
||||
51,8000000000002; -1,187468605994586
|
||||
52,00000000000018; -1,1953550362808736
|
||||
52,20000000000021; -1,269604124857581
|
||||
52,40000000000018; -1,3849421747096078
|
||||
52,6000000000002; -1,3718481353189649
|
||||
52,80000000000019; -1,3954600140641764
|
||||
53,00000000000022; -1,3942562465749204
|
||||
53,20000000000021; -1,4042931940245014
|
||||
53,400000000000226; -1,3795400304760106
|
||||
53,600000000000215; -1,4371475323268652
|
||||
53,80000000000023; -1,4680470055475139
|
||||
54,00000000000022; -1,4956152610708555
|
||||
54,20000000000024; -1,4599173760734971
|
||||
54,400000000000226; -1,3804207925357423
|
||||
54,60000000000023; -1,4209447553401664
|
||||
54,80000000000023; -1,4696589593832408
|
||||
55,00000000000025; -1,3473971465483299
|
||||
55,20000000000024; -1,2804811618109628
|
||||
55,40000000000024; -1,1931187716667573
|
||||
55,60000000000023; -1,1499753811035252
|
||||
55,80000000000026; -1,1787726888220313
|
||||
56,000000000000234; -1,1932811246412953
|
||||
56,20000000000025; -1,259756294621234
|
||||
56,40000000000024; -1,2340584671567725
|
||||
56,60000000000027; -1,1917426282230785
|
||||
56,800000000000246; -1,2255018834858493
|
||||
57,00000000000026; -1,2903085954845714
|
||||
57,200000000000266; -1,3799715177434764
|
||||
57,40000000000027; -1,4961435623060653
|
||||
57,60000000000026; -1,5184418601914111
|
||||
57,800000000000274; -1,4156967177433764
|
||||
58,00000000000025; -1,4701539637874377
|
||||
58,200000000000266; -1,545782763600434
|
||||
58,40000000000027; -1,5486404166502283
|
||||
58,600000000000286; -1,607511180291636
|
||||
58,80000000000026; -1,5918971528251729
|
||||
59,00000000000028; -1,7420918696456886
|
||||
59,20000000000028; -1,8688832280161232
|
||||
59,4000000000003; -1,9018553915656242
|
||||
59,600000000000286; -1,9313949044976835
|
||||
59,8000000000003; -1,7488759443354804
|
||||
60,000000000000306; -1,5879219632492743
|
||||
60,20000000000031; -1,5322688722554756
|
||||
60,40000000000028; -1,4779441671503282
|
||||
60,600000000000314; -1,3053954056727393
|
||||
60,8000000000003; -1,161200232220056
|
||||
61,00000000000032; -1,0852609076693227
|
||||
61,20000000000031; -1,039861302109443
|
||||
61,400000000000325; -1,0938817679702129
|
||||
61,600000000000314; -1,2827795990288489
|
||||
61,80000000000032; -1,4418988356213176
|
||||
62,000000000000306; -1,4887272875332065
|
||||
62,20000000000034; -1,3858016155912871
|
||||
62,400000000000325; -1,4386165299344782
|
||||
62,60000000000034; -1,623474266607849
|
||||
62,800000000000345; -1,6269465129654068
|
||||
63,00000000000035; -1,4835041232913464
|
||||
63,20000000000034; -1,4192369875578938
|
||||
63,40000000000037; -1,393348402668435
|
||||
63,60000000000036; -1,46529616679921
|
||||
63,800000000000374; -1,500508185495117
|
||||
64,00000000000037; -1,6190473360126991
|
||||
64,20000000000036; -1,7519875508476201
|
||||
64,40000000000035; -1,7562809083561022
|
||||
64,60000000000036; -1,969973816098435
|
||||
64,80000000000035; -2,0604805496803844
|
||||
65,00000000000037; -2,0818983868245247
|
||||
65,20000000000036; -2,096459467198311
|
||||
65,40000000000038; -2,2014641556121233
|
||||
65,60000000000039; -1,996828898735267
|
||||
65,80000000000038; -1,6692235197112448
|
||||
66,00000000000037; -1,4111710117485514
|
||||
66,20000000000039; -1,4616886686912545
|
||||
66,40000000000038; -1,6079210184093582
|
||||
66,60000000000039; -1,5839852165659427
|
||||
66,80000000000038; -1,583493358599156
|
||||
67,0000000000004; -1,3918025284299995
|
||||
|
166
Functions/Theory/Dissertation/PD/70ghz_pd_responsivity.csv
Normal file
166
Functions/Theory/Dissertation/PD/70ghz_pd_responsivity.csv
Normal file
@@ -0,0 +1,166 @@
|
||||
1270,8549581839902; 0,5258998226950353
|
||||
1270,743369175627; 0,5221430916732335
|
||||
1271,0781362007167; 0,5309982433674809
|
||||
1271,3013142174432; 0,5350233123194115
|
||||
1271,5244922341694; 0,5385117054110848
|
||||
1271,747670250896; 0,5428051122931441
|
||||
1271,9708482676224; 0,5468301812450749
|
||||
1272,305615292712; 0,5498713444532002
|
||||
1272,9751493428912; 0,5484402088258471
|
||||
1273,5330943847073; 0,5470985191752036
|
||||
1273,7562724014335; 0,5441468019437876
|
||||
1273,867861409797; 0,5398533950617284
|
||||
1274,0910394265231; 0,5377066916206987
|
||||
1274,3142174432496; 0,5337710686454775
|
||||
1274,8721624850657; 0,5309982433674809
|
||||
1275,4301075268816; 0,526615390508712
|
||||
1276,0996415770608; 0,5275098502758077
|
||||
1276,76917562724; 0,5296565537168374
|
||||
1277,4387096774192; 0,5305510134839331
|
||||
1278,1082437275984; 0,5325188249715436
|
||||
1278,7777777777776; 0,5350233123194115
|
||||
1279,4473118279568; 0,5344866364591541
|
||||
1280,116845878136; 0,5348444203659923
|
||||
1280,674790919952; 0,5369016778303125
|
||||
1281,1211469534048; 0,5409267467822432
|
||||
1281,5675029868578; 0,5438784640136589
|
||||
1281,790681003584; 0,5465618433149462
|
||||
1282,0510553564316; 0,5502291283600385
|
||||
1282,5718040621266; 0,554701427195517
|
||||
1283,2413381123058; 0,5545225352420978
|
||||
1283,910872162485; 0,553449183521583
|
||||
1284,5804062126642; 0,5489768846861045
|
||||
1285,13835125448; 0,5454884915944312
|
||||
1285,6962962962962; 0,5425367743630154
|
||||
1286,2542413381123; 0,5422684364328867
|
||||
1286,8121863799283; 0,5459357214779792
|
||||
1287,3701314217442; 0,5495135605463619
|
||||
1287,7792911190759; 0,553449183521583
|
||||
1288,0396654719234; 0,557832036380352
|
||||
1288,2628434886499; 0,5615887674021538
|
||||
1288,4860215053764; 0,5653454984239559
|
||||
1288,7463958582237; 0,5695494593293056
|
||||
1289,1555555555556; 0,5742006501182033
|
||||
1289,7135005973714; 0,5784940570002626
|
||||
1290,3830346475506; 0,5781362730934243
|
||||
1290,9409796893667; 0,5752740018387181
|
||||
1291,1641577060932; 0,57071225702653
|
||||
1291,3873357228194; 0,5672238639348568
|
||||
1291,610513739546; 0,5640038087733122
|
||||
1291,9452807646355; 0,5606048616583486
|
||||
1292,5032258064516; 0,555953670869451
|
||||
1293,0611708482675; 0,554701427195517
|
||||
1293,7307048984467; 0,5570270225899658
|
||||
1294,2886499402628; 0,5586370501707381
|
||||
1294,8465949820788; 0,5618571053322825
|
||||
1295,4045400238947; 0,5645404846335697
|
||||
1295,9624850657108; 0,5672238639348568
|
||||
1296,63201911589; 0,5672238639348568
|
||||
1297,3015531660692; 0,5654349444006653
|
||||
1297,9710872162484; 0,5627515650993782
|
||||
1298,6406212664276; 0,5614993214254442
|
||||
1299,3101553166068; 0,5625726731459592
|
||||
1299,979689366786; 0,5640038087733122
|
||||
1300,6492234169652; 0,5656138363540846
|
||||
1301,3187574671445; 0,5656138363540846
|
||||
1301,9882915173237; 0,5652560524472463
|
||||
1302,6578255675029; 0,5618571053322825
|
||||
1303,327359617682; 0,5584581582173189
|
||||
1303,9968936678613; 0,5563114547762892
|
||||
1304,6664277180405; 0,5543436432886787
|
||||
1305,3359617682197; 0,5539858593818404
|
||||
1305,8939068100358; 0,555953670869451
|
||||
1306,3402628434885; 0,5589053881008668
|
||||
1306,7866188769412; 0,56239378119254
|
||||
1307,2329749103942; 0,5656138363540846
|
||||
1307,679330943847; 0,5693705673758864
|
||||
1308,237275985663; 0,5722328386305927
|
||||
1308,9068100358422; 0,5713383788634969
|
||||
1309,464755077658; 0,5691022294457577
|
||||
1309,911111111111; 0,5658821742842133
|
||||
1310,3574671445638; 0,5634671329130548
|
||||
1310,8038231780165; 0,560515415681639
|
||||
1311,3617682198326; 0,5579214823570615
|
||||
1312,0313022700118; 0,5582792662638998
|
||||
1312,700836320191; 0,5604259697049294
|
||||
1313,3703703703702; 0,5627515650993782
|
||||
1313,9283154121863; 0,5645404846335697
|
||||
1314,374671445639; 0,5674922018649855
|
||||
1315,1557945041816; 0,5704439190964012
|
||||
1315,8253285543608; 0,5708017030032395
|
||||
1316,49486260454; 0,5715172708169162
|
||||
1317,1643966547192; 0,5722328386305927
|
||||
1317,8339307048984; 0,5727695144908501
|
||||
1318,5034647550776; 0,5715172708169162
|
||||
1319,1729988052568; 0,5711594869100779
|
||||
1319,842532855436; 0,5693705673758864
|
||||
1320,5120669056153; 0,5693705673758864
|
||||
1321,1816009557945; 0,5686549995622099
|
||||
1321,8511350059737; 0,5679394317485333
|
||||
1322,5206690561529; 0,5650771604938272
|
||||
1323,190203106332; 0,5645404846335697
|
||||
1323,8597371565113; 0,566150512214342
|
||||
1324,5292712066905; 0,5682972156553716
|
||||
1325,0872162485064; 0,5712489328867874
|
||||
1325,6451612903224; 0,5747373259784607
|
||||
1326,2031063321385; 0,5779573811400052
|
||||
1326,7610513739544; 0,5811774363015497
|
||||
1327,4305854241336; 0,5833241397425795
|
||||
1328,100119474313; 0,5861864109972856
|
||||
1328,7696535244922; 0,5858286270904474
|
||||
1329,4391875746715; 0,5833241397425795
|
||||
1330,1087216248507; 0,5822507880220645
|
||||
1330,7782556750299; 0,5833241397425795
|
||||
1331,447789725209; 0,5833241397425795
|
||||
1332,1173237753883; 0,5843974914630943
|
||||
1332,7868578255675; 0,5869019788109622
|
||||
1333,4563918757467; 0,5876175466246387
|
||||
1334,125925925926; 0,5883331144383153
|
||||
1334,7954599761051; 0,5895853581122492
|
||||
1335,4649940262843; 0,5901220339725066
|
||||
1336,1345280764635; 0,5883331144383153
|
||||
1336,8040621266427; 0,5869019788109622
|
||||
1337,473596176822; 0,5843974914630943
|
||||
1338,1431302270012; 0,5811774363015497
|
||||
1338,8126642771804; 0,5801040845810348
|
||||
1339,4821983273596; 0,5808196523947114
|
||||
1340,1517323775388; 0,5831452477891602
|
||||
1340,821266427718; 0,5849341673233517
|
||||
1341,3792114695339; 0,58734920869451
|
||||
1341,93715651135; 0,5903009259259259
|
||||
1342,6066905615291; 0,5919109535066981
|
||||
1343,2762246117084; 0,5919109535066981
|
||||
1343,9457586618876; 0,592984305227213
|
||||
1344,6152927120668; 0,5936998730408896
|
||||
1345,284826762246; 0,5944154408545661
|
||||
1345,9543608124252; 0,5962043603887575
|
||||
1346,6238948626044; 0,599424415550302
|
||||
1347,0702508960571; 0,6004977672708168
|
||||
1347,9629629629628; 0,5997821994571403
|
||||
1348,632497013142; 0,6012133350844935
|
||||
1349,3020310633212; 0,6033600385255231
|
||||
1349,9715651135004; 0,6033600385255231
|
||||
1350,6410991636797; 0,6037178224323614
|
||||
1351,3106332138589; 0,605864525873391
|
||||
1351,980167264038; 0,6078323373610015
|
||||
1352,6497013142173; 0,6094423649417738
|
||||
1353,3192353643965; 0,6112312844759653
|
||||
1353,9887694145757; 0,6123046361964801
|
||||
1354,658303464755; 0,6123046361964801
|
||||
1355,3278375149341; 0,6135568798704141
|
||||
1355,8857825567502; 0,6168663810086681
|
||||
1356,332138590203; 0,6206231120304702
|
||||
1356,890083632019; 0,6241115051221433
|
||||
1357,5596176821982; 0,626258208563173
|
||||
1358,2291517323774; 0,6248270729358198
|
||||
1358,8986857825566; 0,6230381534016285
|
||||
1359,4566308243727; 0,619818098240084
|
||||
1360,0145758661886; 0,6171347189387969
|
||||
1360,6841099163678; 0,617313610892216
|
||||
1361,353643966547; 0,6176713947990543
|
||||
1362,0231780167262; 0,61856585456615
|
||||
1362,6927120669054; 0,6192814223798266
|
||||
1363,1390681003584; 0,6225014775413711
|
||||
1363,585424133811; 0,626258208563173
|
||||
1364,2549581839903; 0,6284049120042028
|
||||
1364,8129032258064; 0,630014939584975
|
||||
|
66
Functions/Theory/Dissertation/PD/plot_pd_specs.m
Normal file
66
Functions/Theory/Dissertation/PD/plot_pd_specs.m
Normal file
@@ -0,0 +1,66 @@
|
||||
opts = delimitedTextImportOptions("NumVariables", 2);
|
||||
|
||||
% Specify range and delimiter
|
||||
opts.DataLines = [1, Inf];
|
||||
opts.Delimiter = ";";
|
||||
|
||||
% Specify column names and types
|
||||
opts.VariableNames = ["x0_03203105428566744", "x_0_09762908467719589"];
|
||||
opts.VariableTypes = ["double", "double"];
|
||||
|
||||
% Specify file level properties
|
||||
opts.ExtraColumnsRule = "ignore";
|
||||
opts.EmptyLineRule = "read";
|
||||
|
||||
% Specify variable properties
|
||||
opts = setvaropts(opts, ["x0_03203105428566744", "x_0_09762908467719589"], "DecimalSeparator", ",");
|
||||
opts = setvaropts(opts, ["x0_03203105428566744", "x_0_09762908467719589"], "ThousandsSeparator", ".");
|
||||
|
||||
% Import the data
|
||||
x70ghz_pd_resp = readtable("C:\Users\Silas\Documents\MATLAB\imdd_simulation\Functions\Theory\Dissertation\PD\70ghz_pd_responsivity.csv", opts);
|
||||
x70ghz_pd_bandwidth = readtable("C:\Users\Silas\Documents\MATLAB\imdd_simulation\Functions\Theory\Dissertation\PD\70ghz_pd_bandwidth.csv", opts);
|
||||
x100ghz_pd_resp = readtable("C:\Users\Silas\Documents\MATLAB\imdd_simulation\Functions\Theory\Dissertation\PD\100ghz_pd_responsivity.csv", opts);
|
||||
x100ghz_pd_bandwidth = readtable("C:\Users\Silas\Documents\MATLAB\imdd_simulation\Functions\Theory\Dissertation\PD\100ghz_pd_bandwidth.csv", opts);
|
||||
|
||||
% sort bandwidth based on first table column
|
||||
x70ghz_pd_bandwidth = sortrows(x70ghz_pd_bandwidth, "x0_03203105428566744");
|
||||
|
||||
x70ghz_pd_bandwidth.(2) = movmean(x70ghz_pd_bandwidth.(2),3);
|
||||
%smooth data for plotting
|
||||
|
||||
x100ghz_pd_bandwidth = sortrows(x100ghz_pd_bandwidth, "x0_03203105428566744");
|
||||
|
||||
|
||||
|
||||
%%
|
||||
|
||||
figure(); hold on
|
||||
plot(x100ghz_pd_resp.(1),x100ghz_pd_resp.(2))
|
||||
plot(x70ghz_pd_resp.(1),x70ghz_pd_resp.(2))
|
||||
% beautify
|
||||
xlabel('Frequency (GHz)');
|
||||
ylabel('Responsivity (A/W)');
|
||||
legend('100GHz PD', '70GHz PD');
|
||||
grid on;
|
||||
|
||||
%%
|
||||
% mat2tikz_improved('C:\Users\Silas\Documents\6971e0b65b380ca6d71c837f\02_IMDD_System\tikz\pd\responsivity.tikz')
|
||||
|
||||
%%
|
||||
|
||||
figure(); hold on
|
||||
plot(x100ghz_pd_bandwidth.(1),x100ghz_pd_bandwidth.(2))
|
||||
plot(x70ghz_pd_bandwidth.(1),x70ghz_pd_bandwidth.(2))
|
||||
% beautify
|
||||
xlabel('Frequency (GHz)');
|
||||
ylabel('Relative S21');
|
||||
legend('100GHz PD', '70GHz PD');
|
||||
grid on;
|
||||
|
||||
ylim([-3.5, 0.1])
|
||||
xlim([0 100]);
|
||||
|
||||
%%
|
||||
mat2tikz_improved('C:\Users\Silas\Documents\6971e0b65b380ca6d71c837f\02_IMDD_System\tikz\pd\bandwidth_.tikz')
|
||||
|
||||
|
||||
120
Functions/Theory/Dissertation/loss_curve_digitized.m
Normal file
120
Functions/Theory/Dissertation/loss_curve_digitized.m
Normal file
@@ -0,0 +1,120 @@
|
||||
function loss_curve_digitized(filename)
|
||||
% PLOT_WPD_DATASETS Reads and plots scattering data from a CSV file.
|
||||
% filename: String containing the path to the CSV file (e.g., 'wpd_datasets.csv')
|
||||
%
|
||||
% This function expects a CSV with the following structure:
|
||||
% Row 1: Dataset Names (every 2nd column)
|
||||
% Row 2: Variable Names (X, Y, X, Y...)
|
||||
% Row 3+: Numeric Data (potentially with NaNs for unequal lengths)
|
||||
|
||||
% --- 1. Import Data ---
|
||||
if nargin < 1
|
||||
filename = 'wpd_datasets.csv'; % Default filename
|
||||
end
|
||||
|
||||
% Read the numeric data, skipping the first 2 header lines
|
||||
% 'TreatAsMissing' ensures empty cells become NaNs
|
||||
raw_data = readmatrix(filename, 'NumHeaderLines', 2);
|
||||
|
||||
% Read the first line separately to parse Dataset Names
|
||||
fid = fopen(filename, 'r');
|
||||
if fid == -1
|
||||
error('Could not open file: %s', filename);
|
||||
end
|
||||
header_line = fgetl(fid);
|
||||
fclose(fid);
|
||||
|
||||
% Split header by comma to get names
|
||||
raw_names = split(header_line, ',');
|
||||
|
||||
% Extract non-empty names (assuming names are in col 1, 3, 5...)
|
||||
dataset_names = raw_names(~cellfun('isempty', raw_names));
|
||||
|
||||
% --- 2. Setup Plot ---
|
||||
figure('Color', 'w', 'Position', [100, 100, 800, 600]);
|
||||
ax = gca;
|
||||
hold(ax, 'on');
|
||||
|
||||
|
||||
line_styles = {'-', '-', '-', '-'};
|
||||
|
||||
% --- 3. Iterate and Plot Each Dataset ---
|
||||
num_datasets = length(dataset_names);
|
||||
|
||||
for i = 1:num_datasets
|
||||
% Calculate column indices for X and Y
|
||||
% Dataset 1: Cols 1,2 | Dataset 2: Cols 3,4 | etc.
|
||||
col_x = (i-1)*2 + 1;
|
||||
col_y = (i-1)*2 + 2;
|
||||
|
||||
% Extract data
|
||||
if col_y > size(raw_data, 2)
|
||||
warning('Data columns missing for dataset %d', i);
|
||||
break;
|
||||
end
|
||||
|
||||
X = raw_data(:, col_x);
|
||||
Y = raw_data(:, col_y);
|
||||
|
||||
|
||||
|
||||
% Remove NaNs (missing data due to unequal lengths)
|
||||
valid_mask = ~isnan(X) & ~isnan(Y);
|
||||
X = X(valid_mask);
|
||||
Y = Y(valid_mask);
|
||||
|
||||
[X, sortIdx] = sort(X);
|
||||
Y = Y(sortIdx);
|
||||
|
||||
% 3. Smooth the Data
|
||||
|
||||
if numel(X) > 20
|
||||
if 1
|
||||
Y = smoothdata(Y, 'sgolay', 15);
|
||||
else
|
||||
Y = movmean(Y, 15);
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
% Plotting
|
||||
% Using semilogy because scattering data often spans orders of magnitude
|
||||
% (Adjust to 'plot' if linear scale is preferred)
|
||||
p = plot(ax, X, Y, ...
|
||||
'LineStyle', line_styles{mod(i-1, length(line_styles)) + 1}, ...
|
||||
'Marker', 'none', ...
|
||||
'Color', 'black', ...
|
||||
'LineWidth', 1.5, ...
|
||||
'MarkerSize', 6, ...
|
||||
'DisplayName', dataset_names{i});
|
||||
|
||||
% Optional: Fill marker faces for better visibility
|
||||
% p.MarkerFaceColor = p.Color;
|
||||
% p.MarkerFaceAlpha = 0.3; % Semi-transparent fill
|
||||
end
|
||||
|
||||
% --- 4. Styling and Formatting ---
|
||||
|
||||
% Axis Labels (Inferred from typical scattering plots)
|
||||
xlabel(ax, 'Wavelength (\mu m)', 'FontSize', 12, 'FontWeight', 'bold');
|
||||
ylabel(ax, 'Intensity / Cross-Section (a.u.)', 'FontSize', 12, 'FontWeight', 'bold');
|
||||
|
||||
% Title
|
||||
title(ax, 'Dataset Comparison', 'FontSize', 14);
|
||||
|
||||
% Legend
|
||||
legend(ax, 'Location', 'best', 'Interpreter', 'none', 'Box', 'on');
|
||||
|
||||
% Grid
|
||||
grid(ax, 'on');
|
||||
ax.GridAlpha = 0.3;
|
||||
ax.MinorGridAlpha = 0.1;
|
||||
|
||||
% Set Log Scale for Y (likely required for this data type)
|
||||
set(ax, 'YScale', 'log');
|
||||
|
||||
% Enhance axis appearance
|
||||
set(ax, 'Box', 'on', 'LineWidth', 1.2, 'FontSize', 10);
|
||||
|
||||
hold(ax, 'off');
|
||||
end
|
||||
191
Functions/Theory/Dissertation/mach_zehnder_nonlinearities.m
Normal file
191
Functions/Theory/Dissertation/mach_zehnder_nonlinearities.m
Normal file
@@ -0,0 +1,191 @@
|
||||
|
||||
|
||||
%MZM demo -> sinus als eingang in MZM intensity TF: 2nd and 3rd roder
|
||||
%nonlinearities in PSD visible
|
||||
|
||||
clear; close all; clc;
|
||||
|
||||
set(groot,'defaultLegendInterpreter','tex');
|
||||
set(groot,'defaultAxesTickLabelInterpreter','tex');
|
||||
set(groot,'defaultTextInterpreter','tex');
|
||||
|
||||
%% Fixed parameters
|
||||
Vpi = 5.2; % [V]
|
||||
f0 = 10e9; % [Hz]
|
||||
fs = 400e9; % [Hz]
|
||||
Nper = 500; % periods for PSD quality
|
||||
|
||||
t = (0:1/fs:(Nper/f0 - 1/fs)).';
|
||||
w = 2*pi*f0;
|
||||
|
||||
% PSD settings
|
||||
nfft = 2^(nextpow2(min(length(t), 2^18))-1);
|
||||
win = hann(2^12);
|
||||
ovl = round(0.5*numel(win));
|
||||
|
||||
N_bessel = 10;
|
||||
|
||||
%% UI defaults (normalized)
|
||||
vb0 = 1.0; % Vbias/Vpi
|
||||
vpp0 = 0.5; % Vpp/Vpi
|
||||
|
||||
%% Figure + layout
|
||||
fig = figure('Color','w','Name','MZM Nonlinearity: Bias & Drive','NumberTitle','off');
|
||||
tl = tiledlayout(fig,1,2,'TileSpacing','compact','Padding','compact');
|
||||
|
||||
axTF = nexttile(tl,1); hold(axTF,'on'); grid(axTF,'on');
|
||||
axPSD = nexttile(tl,2); hold(axPSD,'on'); grid(axPSD,'on');
|
||||
|
||||
% Scatter placeholders
|
||||
hEx = scatter(axTF, nan, nan, 6, '.', 'DisplayName','Exact');
|
||||
hTa = scatter(axTF, nan, nan, 6, '.', 'DisplayName','Taylor (3rd order)');
|
||||
hJa = scatter(axTF, nan, nan, 6, '.', 'DisplayName',sprintf('Jacobi--Anger (N=%d)',N_bessel));
|
||||
hBias = plot(axTF, nan, nan, 'ko', 'MarkerFaceColor','k', 'DisplayName','Bias');
|
||||
|
||||
xlabel(axTF,'v/V_\pi'); ylabel(axTF,'P_{out}/P_0'); % <-- TeX (no $...$)
|
||||
title(axTF,'Transfer characteristic (scatter)');
|
||||
ylim(axTF,[-0.1 1.1]);
|
||||
xlim(axTF,[0 2]);
|
||||
legend(axTF,'Location','best');
|
||||
|
||||
% PSD placeholders
|
||||
hPex = plot(axPSD, nan, nan, 'LineWidth',2.0, 'DisplayName','Exact');
|
||||
hPta = plot(axPSD, nan, nan, '-', 'LineWidth',1.5, 'DisplayName','Taylor (3rd order)');
|
||||
hPja = plot(axPSD, nan, nan, '--', 'LineWidth',0.1, 'DisplayName',sprintf('Jacobi--Anger (N=%d)',N_bessel));
|
||||
|
||||
xlabel(axPSD,'Frequency [GHz]'); ylabel(axPSD,'PSD [dB/Hz]');
|
||||
title(axPSD,'Output spectrum (PSD)');
|
||||
xlim(axPSD,[0 10*f0/1e9]);
|
||||
legend(axPSD,'Location','best');
|
||||
|
||||
%% Sliders + labels
|
||||
sH = 0.05; mL = 0.08; wS = 0.38; y1 = 0.04; dy = 0.06;
|
||||
|
||||
uicontrol(fig,'Style','text','Units','normalized', ...
|
||||
'Position',[mL, y1+dy, wS, 0.03], ...
|
||||
'String','v_{bias}/V_{\pi}','HorizontalAlignment','left');
|
||||
|
||||
sBias = uicontrol(fig,'Style','slider','Units','normalized', ...
|
||||
'Position',[mL, y1+dy-0.02, wS, sH], ...
|
||||
'Min',0,'Max',2,'Value',vb0);
|
||||
|
||||
tBiasVal = uicontrol(fig,'Style','text','Units','normalized', ...
|
||||
'Position',[mL+wS+0.01, y1+dy, 0.08, 0.03], ...
|
||||
'String',sprintf('%.3f',vb0),'HorizontalAlignment','left');
|
||||
|
||||
uicontrol(fig,'Style','text','Units','normalized', ...
|
||||
'Position',[mL, y1, wS, 0.03], ...
|
||||
'String','v_{pp}/V_{\pi}','HorizontalAlignment','left');
|
||||
|
||||
sVpp = uicontrol(fig,'Style','slider','Units','normalized', ...
|
||||
'Position',[mL, y1-0.02, wS, sH], ...
|
||||
'Min',0,'Max',2,'Value',vpp0);
|
||||
|
||||
tVppVal = uicontrol(fig,'Style','text','Units','normalized', ...
|
||||
'Position',[mL+wS+0.01, y1, 0.08, 0.03], ...
|
||||
'String',sprintf('%.3f',vpp0),'HorizontalAlignment','left');
|
||||
|
||||
%% Store handles in fig.UserData (so callback can always access them)
|
||||
S = struct();
|
||||
S.Vpi = Vpi; S.f0 = f0; S.fs = fs; S.w = w; S.t = t;
|
||||
S.win = win; S.ovl = ovl; S.nfft = nfft;
|
||||
S.N_bessel = N_bessel;
|
||||
|
||||
S.axTF = axTF; S.axPSD = axPSD;
|
||||
S.hEx = hEx; S.hTa = hTa; S.hJa = hJa; S.hBias = hBias;
|
||||
S.hPex = hPex; S.hPta = hPta; S.hPja = hPja;
|
||||
|
||||
S.sBias = sBias; S.sVpp = sVpp;
|
||||
S.tBiasVal = tBiasVal; S.tVppVal = tVppVal;
|
||||
|
||||
fig.UserData = S;
|
||||
|
||||
%% Continuous update while dragging
|
||||
addlistener(sBias,'Value','PostSet',@(~,~)updatePlots(fig));
|
||||
addlistener(sVpp ,'Value','PostSet',@(~,~)updatePlots(fig));
|
||||
|
||||
% Initial draw
|
||||
updatePlots(fig);
|
||||
|
||||
%% ===== Callback (separate function at end of script) =====
|
||||
function updatePlots(fig)
|
||||
S = fig.UserData;
|
||||
|
||||
% Read slider values (normalized)
|
||||
vb_n = S.sBias.Value; % Vbias/Vpi
|
||||
vpp_n = S.sVpp.Value; % Vpp/Vpi
|
||||
|
||||
% Update value labels
|
||||
S.tBiasVal.String = sprintf('%.3f', vb_n);
|
||||
S.tVppVal.String = sprintf('%.3f', vpp_n);
|
||||
|
||||
% Convert to volts / amplitude
|
||||
Vpi = S.Vpi;
|
||||
Vbias = vb_n * Vpi;
|
||||
Vpp = vpp_n * Vpi;
|
||||
Vm = Vpp/2;
|
||||
|
||||
t = S.t; w = S.w;
|
||||
|
||||
% Drive
|
||||
v = Vbias + Vm*cos(w*t);
|
||||
x = v./Vpi;
|
||||
|
||||
% Exact intensity
|
||||
P_exact = cos((pi/2)*x).^2;
|
||||
|
||||
% Taylor 3rd order around Vbias
|
||||
k = (pi/2)/Vpi;
|
||||
vb = Vbias;
|
||||
g0 = cos(k*vb)^2;
|
||||
g1 = -k*sin(2*k*vb);
|
||||
g2 = -2*k^2*cos(2*k*vb);
|
||||
g3 = 4*k^3*sin(2*k*vb);
|
||||
dv = v - vb;
|
||||
P_taylor = g0 + g1*dv + 0.5*g2*dv.^2 + (1/6)*g3*dv.^3;
|
||||
|
||||
% Jacobi–Anger / Bessel series (truncated)
|
||||
a = pi*(Vbias/Vpi);
|
||||
b = pi*(Vm/Vpi);
|
||||
N = S.N_bessel;
|
||||
|
||||
P_ja = 0.5*ones(size(t));
|
||||
P_ja = P_ja + 0.5*cos(a)*besselj(0,b);
|
||||
|
||||
for m = 0:floor((N-1)/2)
|
||||
n = 2*m + 1;
|
||||
P_ja = P_ja - (0.5*2)*sin(a)*besselj(n,b).*cos(n*w*t);
|
||||
end
|
||||
for m = 1:floor(N/2)
|
||||
n = 2*m;
|
||||
P_ja = P_ja - (0.5*2)*cos(a)*besselj(n,b).*cos(n*w*t);
|
||||
end
|
||||
|
||||
% Update TF scatter
|
||||
S.hEx.XData = x; S.hEx.YData = P_exact;
|
||||
S.hTa.XData = x; S.hTa.YData = P_taylor;
|
||||
S.hJa.XData = x; S.hJa.YData = P_ja;
|
||||
|
||||
xb = Vbias/Vpi;
|
||||
pb = cos((pi/2)*xb)^2;
|
||||
S.hBias.XData = xb; S.hBias.YData = pb;
|
||||
|
||||
xpad = 0.05*(max(x)-min(x) + eps);
|
||||
% xlim(S.axTF,[min(x)-xpad, max(x)+xpad]);
|
||||
ylim(S.axTF,[-0.1 1.1]);
|
||||
|
||||
% PSDs
|
||||
fs = S.fs;
|
||||
[Se,f] = pwelch(P_exact-mean(P_exact), S.win, S.ovl, S.nfft, fs, 'onesided');
|
||||
[St,~] = pwelch(P_taylor-mean(P_taylor), S.win, S.ovl, S.nfft, fs, 'onesided');
|
||||
[Sj,~] = pwelch(P_ja-mean(P_ja), S.win, S.ovl, S.nfft, fs, 'onesided');
|
||||
|
||||
S.hPex.XData = f/1e9; S.hPex.YData = 10*log10(Se + realmin);
|
||||
S.hPta.XData = f/1e9; S.hPta.YData = 10*log10(St + realmin);
|
||||
S.hPja.XData = f/1e9; S.hPja.YData = 10*log10(Sj + realmin);
|
||||
|
||||
xlim(S.axPSD,[0 10*(S.f0)/1e9]);
|
||||
ylim(S.axPSD,[-180 -80]);
|
||||
|
||||
drawnow limitrate;
|
||||
end
|
||||
@@ -0,0 +1,66 @@
|
||||
% MZM bias sweep (physical coefficients) + field & power transfer functions
|
||||
% Uses your notation:
|
||||
% Pout/Pin = cos^2( (pi/2)*(v/Vpi) ), v = Vbias + Δv
|
||||
% Taylor around Vbias:
|
||||
% Pout/Pin ≈ a0 + a1 Δv + a2 Δv^2 + a3 Δv^3
|
||||
%
|
||||
% Coefficients (physical units):
|
||||
% a0 [-], a1 [1/V], a2 [1/V^2], a3 [1/V^3]
|
||||
%
|
||||
% Also plots:
|
||||
% Field TF amplitude: Eout/Ein = cos( (pi/2)*(Vbias/Vpi) )
|
||||
% Power TF: Pout/Pin = cos^2( (pi/2)*(Vbias/Vpi) )
|
||||
|
||||
clear; close all; clc;
|
||||
|
||||
set(groot,'defaultLegendInterpreter','tex');
|
||||
set(groot,'defaultAxesTickLabelInterpreter','tex');
|
||||
set(groot,'defaultTextInterpreter','tex');
|
||||
|
||||
%% Parameters
|
||||
Vpi = 3; % [V] device half-wave voltage
|
||||
xb = linspace(0, 2, 2001); % x_b = Vbias/Vpi
|
||||
Vbias = xb * Vpi; % [V]
|
||||
|
||||
%% Static transfer functions (at Vbias)
|
||||
H_field = cos((pi/2)*xb); % field amplitude TF (balanced MZM)
|
||||
T_power = H_field.^2; % intensity TF
|
||||
|
||||
%% Taylor coefficients (physical units)
|
||||
a0 = T_power;
|
||||
a1 = -(pi/(2*Vpi)) .* sin(pi*xb); % [1/V]
|
||||
a2 = -(pi^2/(4*Vpi^2)) .* cos(pi*xb); % [1/V^2]
|
||||
a3 = +(pi^3/(12*Vpi^3)) .* sin(pi*xb); % [1/V^3]
|
||||
A0 = a0;
|
||||
A1 = a1 * Vpi;
|
||||
A2 = a2 * Vpi^2;
|
||||
A3 = a3 * Vpi^3;
|
||||
|
||||
%% Plot
|
||||
figure('Color','w'); clf;
|
||||
% --- (1) Field + power TF vs bias ---
|
||||
hold on; grid on;
|
||||
plot(xb, H_field, 'LineWidth', 1.4, 'DisplayName','Field','Color','black','LineStyle','--');
|
||||
% plot(xb, T_power, 'LineWidth', 1.4, 'DisplayName','Intensity','Color','black','LineStyle','-');
|
||||
|
||||
|
||||
% --- (2) Physical Taylor coefficients vs bias ---
|
||||
% nexttile; hold on; grid on;
|
||||
plot(xb, a0, 'LineWidth', 1.4, 'DisplayName','Intensity','Color','black','LineStyle','-');
|
||||
plot(xb, a1, 'LineWidth', 1.4, 'DisplayName','Linear');
|
||||
plot(xb, a2, 'LineWidth', 1.4, 'DisplayName','Even');
|
||||
plot(xb, a3, 'LineWidth', 1.4, 'DisplayName','Odd');
|
||||
|
||||
xlabel('$V/V_\pi$','Interpreter','latex');
|
||||
ylabel('Transfer');
|
||||
title('Static transfer functions vs bias');
|
||||
xlim([min(xb) max(xb)]);
|
||||
ylim([-1.05 1.05]);
|
||||
legend('Location','best');
|
||||
|
||||
% Optional: tighten y-limits to avoid a0 dominating the view
|
||||
% Comment out if you prefer auto-scaling.
|
||||
yl = ylim;
|
||||
ylim([min(yl(1), -max(abs([a1 a2 a3]))*1.1), max(yl(2), max(abs([a1 a2 a3]))*1.1)]);
|
||||
|
||||
xticks([0:0.5:2]);
|
||||
189
Functions/Theory/Dissertation/wpd_datasets.csv
Normal file
189
Functions/Theory/Dissertation/wpd_datasets.csv
Normal file
@@ -0,0 +1,189 @@
|
||||
Rayleigh,,Experimental,,Infrared Absorption,
|
||||
X,Y,X,Y,X,Y
|
||||
0.7066005680911753,3.651009696525016,0.7072188355785799,4.848577786727532,1.4943918372804705,0.009324755400827079
|
||||
0.7362740977034739,3.1008424465551374,0.7104385926007812,5.059236053617898,1.5870823136443164,0.04795688074913024
|
||||
0.7704634954089999,2.559836201011587,0.7143024334187478,5.3165954733738054,1.6443739975494367,0.12666181795273013
|
||||
0.8246453070916075,1.9963763545469397,0.7194723146571098,4.679249634272495,1.6900695253042852,0.3029389206853443
|
||||
0.8846384359818439,1.4197559292837703,0.7194729766137344,4.646181068667172,1.7344762235109785,0.7194296259968607
|
||||
0.9375334039861705,1.0762856922437043,0.7227053108118038,4.236869693191961,1.7975573800551148,2.1896107578891244
|
||||
0.9929980876073115,0.9010620061822204,0.7272205169484065,4.147543538340177,,
|
||||
1.0420225952274251,0.6977835411732736,0.7291487965959542,4.420849736815974,,
|
||||
1.0845923638007697,0.5842349714248559,0.7310784001567514,4.645798669234298,,
|
||||
1.129741777340298,0.4856980392071641,0.7355902965102309,4.71201487210429,,
|
||||
1.1981066716622326,0.3841608204561696,0.738821306795051,4.358286713153517,,
|
||||
1.24841405122088,0.31935666463679646,0.7414069093708566,4.059822180897163,,
|
||||
1.289688370679823,0.2850148847474179,0.742705668268381,3.676053825899206,,
|
||||
1.3541801567910463,0.23691184007300667,0.7440031032526563,3.376112267508452,,
|
||||
1.4083573347772815,0.19416797258075097,0.7452965664971838,3.235432943532804,,
|
||||
1.4618851333147547,0.16723647350379714,0.7459426361628229,3.1898499103097238,,
|
||||
1.50315548103395,0.15574103754742674,0.7549743723492774,3.0137121806723157,,
|
||||
1.5386251028515106,0.1419883611511702,0.7620678995388148,2.971117042589562,,
|
||||
1.596665459699088,0.12316075278891304,0.765291628300764,2.971049114206588,,
|
||||
1.6437444767994136,0.10759838849626362,0.7756075603390012,2.9708317538173317,,
|
||||
1.683725994970454,0.09949510555249974,0.7762523060913911,2.9708181693210105,,
|
||||
1.717258069747722,0.09398483395032568,0.7839919029465676,2.8875658983600925,,
|
||||
1.7636903552257834,0.08387517688001396,0.7885090949530442,2.767180560538318,,
|
||||
1.7940013490676008,0.07701567091052414,0.7917348095848672,2.7088647150205,,
|
||||
,,0.7936723566251598,2.6144535948583694,,
|
||||
,,0.7962546494178423,2.5233214143921474,,
|
||||
,,0.8085087904529968,2.417989089048743,,
|
||||
,,0.8104423657535417,2.435165393892523,,
|
||||
,,0.8201175237791369,2.3335556930105406,,
|
||||
,,0.8285065000830756,2.158298098247211,,
|
||||
,,0.8317335386281479,2.083056634772393,,
|
||||
,,0.8356046609689853,2.024737963659226,,
|
||||
,,0.8407639509013534,1.996148150112612,,
|
||||
,,0.8459232408337212,1.967962031984024,,
|
||||
,,0.854951005280428,1.9401206794865944,,
|
||||
,,0.8601116191260452,1.8857864945455538,,
|
||||
,,0.8691446792257491,1.7565635929668848,,
|
||||
,,0.8743052930713663,1.7073700288086895,,
|
||||
,,0.8788211611645935,1.6595617469926904,,
|
||||
,,0.8826916215488064,1.624580544751916,,
|
||||
,,0.8891397410293294,1.6130257674984603,,
|
||||
,,0.896234592132116,1.5678305544227285,,
|
||||
,,0.903974850943917,1.5131252291764425,,
|
||||
,,0.90784531132813,1.4812307005435945,,
|
||||
,,0.9155829223134326,1.470682044636039,,
|
||||
,,0.9220303798373308,1.4706147972609174,,
|
||||
,,0.9310574823274131,1.460128389693264,,
|
||||
,,0.9349259568417521,1.4600883304432553,,
|
||||
,,0.9433056657529459,1.4913980336424177,,
|
||||
,,0.9516853746641398,1.5233791328756299,,
|
||||
,,0.956844002639883,1.512557980118849,,
|
||||
,,0.9671632444612435,1.4597545460975296,,
|
||||
,,0.9710370146285795,1.379199997932108,,
|
||||
,,0.9736206313345113,1.3123773159521164,,
|
||||
,,0.9774937395452226,1.2487807938448074,,
|
||||
,,0.9826543533908398,1.213807976266501,,
|
||||
,,0.9903926263327669,1.1966468122906808,,
|
||||
,,0.9942630867169798,1.171423198750918,,
|
||||
,,1.0045796807118417,1.1630595787371243,,
|
||||
,,1.0097376467309604,1.163017033545686,,
|
||||
,,1.0219851681998686,1.1963787227370668,,
|
||||
,,1.0290753856062829,1.2220446908209617,,
|
||||
,,1.0348774354211667,1.2306917801168409,,
|
||||
,,1.0471421677623152,1.052809309517664,,
|
||||
,,1.0510159379296513,0.9947114748787712,,
|
||||
,,1.0445565651865096,1.1302083245776995,,
|
||||
,,1.0458487045177878,1.0985863367418764,,
|
||||
,,1.0542449623445975,0.9398239868494617,,
|
||||
,,1.0613444471437565,0.8692481092753317,,
|
||||
,,1.0690886776953055,0.8039684355922487,,
|
||||
,,1.0768322462902296,0.7488836107091129,,
|
||||
,,1.0800586228786773,0.7279206840193796,,
|
||||
,,1.0858633205200596,0.7125673758820761,,
|
||||
,,1.1013418522737881,0.677981252075927,,
|
||||
,,1.105210326788127,0.6779626513688453,,
|
||||
,,1.1193973811672016,0.6589337368401503,,
|
||||
,,1.1206888585418553,0.6450561487842132,,
|
||||
,,1.123272475247787,0.613802971613336,,
|
||||
,,1.129077834845794,0.5966103416145675,,
|
||||
,,1.1335910551125228,0.5965912453535225,,
|
||||
,,1.1413266802279516,0.6050805792103379,,
|
||||
,,1.147134687652457,0.5716821968068484,,
|
||||
,,1.1581006610960811,0.5401075330241505,,
|
||||
,,1.167774495208427,0.524964710284852,,
|
||||
,,1.17357786893656,0.521233298948351,,
|
||||
,,1.1890511050372914,0.5248855006959243,,
|
||||
,,1.1974327998183592,0.5248543002000403,,
|
||||
,,1.2051671010205385,0.5399272739697006,,
|
||||
,,1.2161264548979165,0.5475977747039503,,
|
||||
,,1.2225739124218147,0.5475727356323816,,
|
||||
,,1.2232186581742046,0.5475702317881956,,
|
||||
,,1.2257923455307669,0.5795255128326332,,
|
||||
,,1.2264284858470365,0.635494312878344,,
|
||||
,,1.2264218662807902,0.6822012488404363,,
|
||||
,,1.2322133247896798,0.7695840678419278,,
|
||||
,,1.2354304339853828,0.8261273126225834,,
|
||||
,,1.2386382757883407,0.9793976812064772,,
|
||||
,,1.2399224716401234,1.0365631680970249,,
|
||||
,,1.2405632456527655,1.0816189618908738,,
|
||||
,,1.2457119442791393,1.1944819289049535,,
|
||||
,,1.2508619668187624,1.3005429730851226,,
|
||||
,,1.2521488104970433,1.3379536598639075,,
|
||||
,,1.2586068593269357,1.1943726953174758,,
|
||||
,,1.2605516878900995,1.0662340854711274,,
|
||||
,,1.263782036218295,0.9932116176633944,,
|
||||
,,1.267659116168754,0.9057092045091463,,
|
||||
,,1.2721796179583538,0.8377104911187728,,
|
||||
,,1.277345527456968,0.7693377754021644,,
|
||||
,,1.2818653672899432,0.7166420946785479,,
|
||||
,,1.2954156193961235,0.639704291832398,,
|
||||
,,1.298640672071322,0.6306801565443763,,
|
||||
,,1.3018657247465204,0.6217833222901857,,
|
||||
,,1.3147579919678183,0.6396165438362177,,
|
||||
,,1.3179764250767705,0.6769403979817149,,
|
||||
,,1.3244132912946747,0.7582491296621654,,
|
||||
,,1.3295613279644238,0.8433295073010272,,
|
||||
,,1.336000180052202,0.9247376324361347,,
|
||||
,,1.3430738485430005,1.1278180580973283,,
|
||||
,,1.3449988184074253,1.2455302076050567,,
|
||||
,,1.3482112939067554,1.4050952527481475,,
|
||||
,,1.351423769406086,1.585102197634859,,
|
||||
,,1.3533487392705106,1.7505418140103943,,
|
||||
,,1.3565618767264658,1.9608478952847546,,
|
||||
,,1.3604177740649368,2.243642151072621,,
|
||||
,,1.3681421459177467,2.5671506730013776,,
|
||||
,,1.3720059867357133,2.6977396395227498,,
|
||||
,,1.3700631440424236,2.9583331848749403,,
|
||||
,,1.3745670969164077,3.267039328784058,,
|
||||
,,1.3758446732019438,3.711862721055264,,
|
||||
,,1.377124897313979,4.099294432098773,,
|
||||
,,1.381620906708467,4.929210899363566,,
|
||||
,,1.381610315402473,5.521521237053952,,
|
||||
,,1.382885243861511,6.453816707451638,,
|
||||
,,1.3828733286422676,7.332602493027707,,
|
||||
,,1.3835048352621646,8.450022001983974,,
|
||||
,,1.3847837354609505,9.465318121186383,,
|
||||
,,1.3892850405084358,10.753821633797266,,
|
||||
,,1.3950817946703227,11.46214012981349,,
|
||||
,,1.406041810504325,11.542823048802346,,
|
||||
,,1.4086254272102567,10.983569572223233,,
|
||||
,,1.4125144223799593,8.815541223987582,,
|
||||
,,1.4138145051907332,7.8697993951128655,,
|
||||
,,1.4164106990725327,6.544455667464655,,
|
||||
,,1.4170686839574151,5.678973743658009,,
|
||||
,,1.419664877839215,4.722584406045411,,
|
||||
,,1.422267691287261,3.6583795017467264,,
|
||||
,,1.4274475018749921,2.894876829955794,,
|
||||
,,1.4293982880477776,2.4244991059437035,,
|
||||
,,1.4319891862765801,2.133892660567146,,
|
||||
,,1.4365249130685465,1.6766244945281037,,
|
||||
,,1.442346821582169,1.3648832144532748,,
|
||||
,,1.44946086942707,1.0800176935856405,,
|
||||
,,1.4539886527395407,0.9239641429706197,,
|
||||
,,1.4617467843802068,0.7363233849854021,,
|
||||
,,1.4701536335130105,0.5623407795094862,,
|
||||
,,1.477900511891058,0.5055620724926202,,
|
||||
,,1.4856487141823544,0.44811473438788657,,
|
||||
,,1.4940482817922873,0.3699994982234866,,
|
||||
,,1.5005089784486785,0.32105511462339426,,
|
||||
,,1.5089019264923649,0.2845721176091456,,
|
||||
,,1.5166481429137875,0.2576601983353233,,
|
||||
,,1.5179396202884412,0.2522337011156551,,
|
||||
,,1.5359997828782272,0.23327413205434572,,
|
||||
,,1.5430966198508878,0.22196482072259285,,
|
||||
,,1.5469697280615993,0.21120862244291763,,
|
||||
,,1.5501980905199209,0.20097457800069773,,
|
||||
,,1.565674636403775,0.1953318790229525,,
|
||||
,,1.5688977032090996,0.19671762962317987,,
|
||||
,,1.5785662416684487,0.20236426842871638,,
|
||||
,,1.5837215598610688,0.2081796533603784,,
|
||||
,,1.5914545371499988,0.21721757235346942,,
|
||||
,,1.5991901622654274,0.22030852031094905,,
|
||||
,,1.6088620105078997,0.21873658192521878,,
|
||||
,,1.61208309144335,0.22502554836218797,,
|
||||
,,1.6262602164730557,0.2432590831170723,,
|
||||
,,1.626903638312196,0.2467330049135315,,
|
||||
,,1.6281904819904773,0.25383038758817866,,
|
||||
,,1.6410748057322797,0.28430548752659124,,
|
||||
,,1.660414530477476,0.29244621369149987,,
|
||||
,,1.6642816810785659,0.29661578287603696,,
|
||||
,,1.6707152375133467,0.34423590359793155,,
|
||||
,,1.6739290369259265,0.3828666146961718,,
|
||||
,,1.6758540067903511,0.4228270071256609,,
|
||||
,,1.690028483993558,0.4702407837690221,,
|
||||
,,1.6964732936909575,0.48374976893430716,,
|
||||
,,1.6996923887565347,0.5083600695634991,,
|
||||
,,1.7003318388559272,0.5380344919079171,,
|
||||
|
193
Libs/Violinplot-Matlab-master/violinplot_community_.m
Normal file
193
Libs/Violinplot-Matlab-master/violinplot_community_.m
Normal file
@@ -0,0 +1,193 @@
|
||||
function violins = violinplot(data, cats, varargin)
|
||||
%Violinplots plots violin plots of some data and categories
|
||||
% VIOLINPLOT(DATA) plots a violin of a double vector DATA
|
||||
%
|
||||
% VIOLINPLOT(DATAMATRIX) plots violins for each column in
|
||||
% DATAMATRIX.
|
||||
%
|
||||
% VIOLINPLOT(DATAMATRIX, CATEGORYNAMES) plots violins for each
|
||||
% column in DATAMATRIX and labels them according to the names in the
|
||||
% cell-of-strings CATEGORYNAMES.
|
||||
%
|
||||
% In the cases above DATA and DATAMATRIX can be a vector or a matrix,
|
||||
% respectively, either as is or wrapped in a cell.
|
||||
% To produce violins which have one distribution on one half and another
|
||||
% one on the other half, DATA and DATAMATRIX have to be cell arrays
|
||||
% with two elements, each containing a vector or a matrix. The number of
|
||||
% columns of the two data sets has to be the same.
|
||||
%
|
||||
% VIOLINPLOT(DATA, CATEGORIES) where double vector DATA and vector
|
||||
% CATEGORIES are of equal length; plots violins for each category in
|
||||
% DATA.
|
||||
%
|
||||
% VIOLINPLOT(TABLE), VIOLINPLOT(STRUCT), VIOLINPLOT(DATASET)
|
||||
% plots violins for each column in TABLE, each field in STRUCT, and
|
||||
% each variable in DATASET. The violins are labeled according to
|
||||
% the table/dataset variable name or the struct field name.
|
||||
%
|
||||
% violins = VIOLINPLOT(...) returns an object array of
|
||||
% <a href="matlab:help('Violin')">Violin</a> objects.
|
||||
%
|
||||
% VIOLINPLOT(..., 'PARAM1', val1, 'PARAM2', val2, ...)
|
||||
% specifies optional name/value pairs for all violins:
|
||||
% 'Width' Width of the violin in axis space.
|
||||
% Defaults to 0.3
|
||||
% 'Bandwidth' Bandwidth of the kernel density estimate.
|
||||
% Should be between 10% and 40% of the data range.
|
||||
% 'ViolinColor' Fill color of the violin area and data points. Accepts
|
||||
% 1x3 color vector or nx3 color vector where n = num
|
||||
% groups. In case of two data sets being compared it can
|
||||
% be an array of up to two cells containing nx3
|
||||
% matrices.
|
||||
% Defaults to the next default color cycle.
|
||||
% 'ViolinAlpha' Transparency of the violin area and data points.
|
||||
% Can be either a single scalar value or an array of
|
||||
% up to two cells containing scalar values.
|
||||
% Defaults to 0.3.
|
||||
% 'MarkerSize' Size of the data points, if shown.
|
||||
% Defaults to 24
|
||||
% 'MedianMarkerSize' Size of the median indicator, if shown.
|
||||
% Defaults to 36
|
||||
% 'EdgeColor' Color of the violin area outline.
|
||||
% Defaults to [0.5 0.5 0.5]
|
||||
% 'BoxColor' Color of the box, whiskers, and the outlines of
|
||||
% the median point and the notch indicators.
|
||||
% Defaults to [0.5 0.5 0.5]
|
||||
% 'MedianColor' Fill color of the median and notch indicators.
|
||||
% Defaults to [1 1 1]
|
||||
% 'ShowData' Whether to show data points.
|
||||
% Defaults to true
|
||||
% 'ShowNotches' Whether to show notch indicators.
|
||||
% Defaults to false
|
||||
% 'ShowMean' Whether to show mean indicator
|
||||
% Defaults to false
|
||||
% 'ShowBox' Whether to show the box.
|
||||
% Defaults to true
|
||||
% 'ShowMedian' Whether to show the median indicator.
|
||||
% Defaults to true
|
||||
% 'ShowWhiskers' Whether to show the whiskers
|
||||
% Defaults to true
|
||||
% 'GroupOrder' Cell of category names in order to be plotted.
|
||||
% Defaults to alphabetical ordering
|
||||
|
||||
% Copyright (c) 2016, Bastian Bechtold
|
||||
% This code is released under the terms of the BSD 3-clause license
|
||||
|
||||
hascategories = exist('cats','var') && not(isempty(cats));
|
||||
|
||||
%parse the optional grouporder argument
|
||||
%if it exists parse the categories order
|
||||
% but also delete it from the arguments passed to Violin
|
||||
grouporder = {};
|
||||
idx=find(strcmp(varargin, 'GroupOrder'));
|
||||
if ~isempty(idx) && numel(varargin)>idx
|
||||
if iscell(varargin{idx+1})
|
||||
grouporder = varargin{idx+1};
|
||||
varargin(idx:idx+1)=[];
|
||||
else
|
||||
error('Second argument of ''GroupOrder'' optional arg must be a cell of category names')
|
||||
end
|
||||
end
|
||||
|
||||
% check and correct the structure of ViolinColor input
|
||||
idx=find(strcmp(varargin, 'ViolinColor'));
|
||||
if ~isempty(idx) && iscell(varargin{idx+1})
|
||||
if length(varargin{idx+1}(:))>2
|
||||
error('ViolinColor input can be at most a two element cell array');
|
||||
end
|
||||
elseif ~isempty(idx) && isnumeric(varargin{idx+1})
|
||||
varargin{idx+1} = varargin(idx+1);
|
||||
end
|
||||
|
||||
% check and correct the structure of ViolinAlpha input
|
||||
idx=find(strcmp(varargin, 'ViolinAlpha'));
|
||||
if ~isempty(idx) && iscell(varargin{idx+1})
|
||||
if length(varargin{idx+1}(:))>2
|
||||
error('ViolinAlpha input can be at most a two element cell array');
|
||||
end
|
||||
elseif ~isempty(idx) && isnumeric(varargin{idx+1})
|
||||
varargin{idx+1} = varargin(idx+1);
|
||||
end
|
||||
|
||||
% tabular data
|
||||
if isa(data, 'dataset') || isstruct(data) || istable(data)
|
||||
if isa(data, 'dataset')
|
||||
colnames = data.Properties.VarNames;
|
||||
elseif istable(data)
|
||||
colnames = data.Properties.VariableNames;
|
||||
elseif isstruct(data)
|
||||
colnames = fieldnames(data);
|
||||
end
|
||||
catnames = {};
|
||||
if isempty(grouporder)
|
||||
for n=1:length(colnames)
|
||||
if isnumeric(data.(colnames{n}))
|
||||
catnames = [catnames colnames{n}]; %#ok<*AGROW>
|
||||
end
|
||||
end
|
||||
catnames = sort(catnames);
|
||||
else
|
||||
for n=1:length(grouporder)
|
||||
if isnumeric(data.(grouporder{n}))
|
||||
catnames = [catnames grouporder{n}];
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for n=1:length(catnames)
|
||||
thisData = data.(catnames{n});
|
||||
violins(n) = Violin({thisData}, n, varargin{:});
|
||||
end
|
||||
set(gca, 'XTick', 1:length(catnames), 'XTickLabels', catnames);
|
||||
set(gca,'Box','on');
|
||||
return
|
||||
elseif iscell(data) && length(data(:))==2 % cell input
|
||||
if not(size(data{1},2)==size(data{2},2))
|
||||
error('The two input data matrices have to have the same number of columns');
|
||||
end
|
||||
elseif iscell(data) && length(data(:))>2 % cell input
|
||||
error('Up to two datasets can be compared');
|
||||
elseif isnumeric(data) % numeric input
|
||||
% 1D data, one category for each data point
|
||||
if hascategories && numel(data) == numel(cats)
|
||||
if isempty(grouporder)
|
||||
cats = categorical(cats);
|
||||
else
|
||||
cats = categorical(cats, grouporder);
|
||||
end
|
||||
|
||||
catnames = (unique(cats)); % this ignores categories without any data
|
||||
catnames_labels = {};
|
||||
for n = 1:length(catnames)
|
||||
thisCat = catnames(n);
|
||||
catnames_labels{n} = char(thisCat);
|
||||
thisData = data(cats == thisCat);
|
||||
violins(n) = Violin({thisData}, n, varargin{:});
|
||||
end
|
||||
set(gca, 'XTick', 1:length(catnames), 'XTickLabels', catnames_labels);
|
||||
set(gca,'Box','on');
|
||||
return
|
||||
else
|
||||
data = {data};
|
||||
end
|
||||
end
|
||||
|
||||
% 1D data, no categories
|
||||
if not(hascategories) && isvector(data{1})
|
||||
violins = Violin(data, 1, varargin{:});
|
||||
set(gca, 'XTick', 1);
|
||||
% 2D data with or without categories
|
||||
elseif ismatrix(data{1})
|
||||
for n=1:size(data{1}, 2)
|
||||
thisData = cellfun(@(x)x(:,n),data,'UniformOutput',false);
|
||||
violins(n) = Violin(thisData, n, varargin{:});
|
||||
end
|
||||
set(gca, 'XTick', 1:size(data{1}, 2));
|
||||
if hascategories && length(cats) == size(data{1}, 2)
|
||||
set(gca, 'XTickLabels', cats);
|
||||
end
|
||||
end
|
||||
|
||||
set(gca,'Box','on');
|
||||
|
||||
end
|
||||
Binary file not shown.
@@ -146,7 +146,7 @@ output.ffe_results = ffe(eq_,M,Scpe_sig,Symbols,Tx_bits, ...
|
||||
"precode_mode",duob_mode,'showAnalysis',1,"postFFE",[], ...
|
||||
"eth_style_symbol_mapping",0);
|
||||
|
||||
output.ffe_results.metrics.print
|
||||
output.ffe_results.metrics.print("description",'DFE');
|
||||
|
||||
%%
|
||||
|
||||
@@ -164,7 +164,7 @@ mlse_ = MLSE("duobinary_output",0,'M',M,'trellis_states',PAMmapper(M,0).levels);
|
||||
[output.vnle_results, output.mlse_results] = vnle_postfilter_mlse(eq_v, pf_, mlse_, M, Scpe_sig, Symbols, Tx_bits, ...
|
||||
"precode_mode", duob_mode, 'showAnalysis', 1, "postFFE", [], "eth_style_symbol_mapping", 0);
|
||||
|
||||
output.mlse_results.metrics.print
|
||||
output.mlse_results.metrics.print("description",'MLSE');
|
||||
|
||||
%%
|
||||
|
||||
|
||||
@@ -58,11 +58,14 @@ if options.parallel
|
||||
updateWaitbarFutures = afterEach(results, updateWaitbar, 0);
|
||||
afterAll(updateWaitbarFutures, @(~) delete(h), 0);
|
||||
|
||||
%%% 7) Fetch final results after all computations
|
||||
fetchOutputs(results);
|
||||
|
||||
for ridx = 1:length(results)
|
||||
wh.addValueToStorageByLinIdx(results(ridx).OutputArguments{1}, 'ber', ridx);
|
||||
%%% 7) Fetch final results iteratively as they finish
|
||||
for i = 1:length(results)
|
||||
try
|
||||
[ridx, result] = fetchNext(results);
|
||||
wh.addValueToStorageByLinIdx(result, 'ber', ridx);
|
||||
catch ME
|
||||
fprintf('A job failed or could not be fetched. Error: %s\n', ME.message);
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
BIN
projects/Messung_Zürich/testSilas.mat
Normal file
BIN
projects/Messung_Zürich/testSilas.mat
Normal file
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -1,150 +0,0 @@
|
||||
[1mdiff --git a/Classes/00_signals/Signal.m b/Classes/00_signals/Signal.m[m
|
||||
[1mindex e06c41f..f09a03e 100644[m
|
||||
[1m--- a/Classes/00_signals/Signal.m[m
|
||||
[1m+++ b/Classes/00_signals/Signal.m[m
|
||||
[36m@@ -172,11 +172,9 @@[m [mclassdef Signal[m
|
||||
[m
|
||||
hold on;[m
|
||||
if isempty(options.color)[m
|
||||
[31m- % plot(t* 1e6, sig(1:length(t)), 'DisplayName', dn, 'LineWidth', 0.1, 'Marker', '.', 'LineStyle','none', 'MarkerSize', 0.1);[m
|
||||
[31m- plot(t* 1e6, sig(1:length(t)), 'DisplayName', dn, 'LineWidth', 0.1);[m
|
||||
[32m+[m[32m plot(t* 1e6, sig(1:length(t)), 'DisplayName', dn, 'LineWidth', 0.1, 'Marker', '.', 'LineStyle','none', 'MarkerSize', 0.1);[m[41m
|
||||
[m
|
||||
else[m
|
||||
[31m- % plot(t* 1e6, sig(1:length(t)), 'DisplayName', dn, 'LineWidth', 0.1, 'Marker', '.', 'LineStyle','none', 'MarkerSize', 0.1,'Color',options.color);[m
|
||||
[31m- plot(t* 1e6, sig(1:length(t)), 'DisplayName', dn, 'LineWidth', 0.1, 'Color',options.color);[m
|
||||
[32m+[m[32m plot(t* 1e6, sig(1:length(t)), 'DisplayName', dn, 'LineWidth', 0.1, 'Marker', '.', 'LineStyle','none', 'MarkerSize', 0.1,'Color',options.color);[m[41m
|
||||
[m
|
||||
end[m
|
||||
% 2 c)[m
|
||||
% - xlabel if not already here: time in readable format (1 ms and not 1e-3 s)[m
|
||||
[1mdiff --git a/Classes/02_optical/DP_Fiber.m b/Classes/02_optical/DP_Fiber.m[m
|
||||
[1mindex a5f3dce..c1f08ea 100644[m
|
||||
[1m--- a/Classes/02_optical/DP_Fiber.m[m
|
||||
[1m+++ b/Classes/02_optical/DP_Fiber.m[m
|
||||
[36m@@ -24,6 +24,8 @@[m [mclassdef DP_Fiber[m
|
||||
SS_dzmax % [m] max dz (adaptive SSFM)[m
|
||||
SS_dzmin % [m] min dz (adaptive SSFM)[m
|
||||
n_waveplates % number of PMD waveplates[m
|
||||
[32m+[m[32m useGPU % GPU acceleration: true, false, or 'auto' (default)[m
|
||||
[32m+[m[32m useSingle % Use single precision on GPU (default: false)[m
|
||||
[m
|
||||
% ---- Internal state (persistent between calls) ----[m
|
||||
state % struct mirroring legacy 'state'[m
|
||||
[36m@@ -56,6 +58,8 @@[m [mclassdef DP_Fiber[m
|
||||
options.SS_dzmax = 2e4 % m[m
|
||||
options.SS_dzmin = 100 % m[m
|
||||
options.n_waveplates = 100[m
|
||||
[32m+[m[32m options.useGPU = 'auto' % 'auto', true, or false[m
|
||||
[32m+[m[32m options.useSingle = false % single precision GPU[m
|
||||
end[m
|
||||
[m
|
||||
% Copy provided options into properties[m
|
||||
[36m@@ -208,7 +212,7 @@[m [mclassdef DP_Fiber[m
|
||||
% Frequency-dependent PMD phase term (legacy form)[m
|
||||
st.brf.db0 = (R.rand(st.wave_plates,1)*2*pi - pi) * brf_multiplier;[m
|
||||
st.brf.db1 = sqrt(3*pi/8)*(st.dgd/obj.fa)/st.wave_plates .* st.omega;[m
|
||||
[31m- st.brf.simdgd = 0; [m
|
||||
[32m+[m[32m st.brf.simdgd = 0;[m
|
||||
% cumsum used in legacy only for debug; keep compatibility variable:[m
|
||||
~cumsum(st.brf.db0); % no-op to mirror legacy path[m
|
||||
[m
|
||||
[36m@@ -228,7 +232,18 @@[m [mclassdef DP_Fiber[m
|
||||
x_in = signal_in(:,1).';[m
|
||||
y_in = signal_in(:,2).';[m
|
||||
[m
|
||||
[31m- [x_out, y_out, obj.state] = CNLSE_plain(x_in, y_in, obj.state);[m
|
||||
[32m+[m[32m % Determine GPU usage[m
|
||||
[32m+[m[32m if ischar(obj.useGPU) || isstring(obj.useGPU)[m
|
||||
[32m+[m[32m if strcmpi(obj.useGPU, 'auto')[m
|
||||
[32m+[m[32m gpuFlag = []; % Let CNLSE_plain auto-detect[m
|
||||
[32m+[m[32m else[m
|
||||
[32m+[m[32m error('DP_Fiber:InvalidGPU', 'useGPU must be true, false, or ''auto''');[m
|
||||
[32m+[m[32m end[m
|
||||
[32m+[m[32m else[m
|
||||
[32m+[m[32m gpuFlag = logical(obj.useGPU);[m
|
||||
[32m+[m[32m end[m
|
||||
[32m+[m
|
||||
[32m+[m[32m [x_out, y_out, obj.state] = CNLSE_plain(x_in, y_in, obj.state, gpuFlag, obj.useSingle);[m
|
||||
[m
|
||||
obj.state.propagated_length = obj.state.propagated_length + obj.state.L;[m
|
||||
[m
|
||||
[1mdiff --git a/Classes/02_optical/Optical_Demultiplex.m b/Classes/02_optical/Optical_Demultiplex.m[m
|
||||
[1mindex 7d7c39e..8e272d2 100644[m
|
||||
[1m--- a/Classes/02_optical/Optical_Demultiplex.m[m
|
||||
[1m+++ b/Classes/02_optical/Optical_Demultiplex.m[m
|
||||
[36m@@ -42,7 +42,7 @@[m [mclassdef Optical_Demultiplex < handle[m
|
||||
[m
|
||||
function signalclasses_out = process(obj, signalclass_in)[m
|
||||
[m
|
||||
[31m- % ---- Infer wavelength: either given or from input total signal [m
|
||||
[32m+[m[32m % ---- Infer wavelength: either given or from input total signal[m
|
||||
if isempty(obj.wavelengthplan)[m
|
||||
obj.wavelengthplan = signalclass_in.lambda; %meter[m
|
||||
else[m
|
||||
[36m@@ -81,7 +81,7 @@[m [mclassdef Optical_Demultiplex < handle[m
|
||||
obj[m
|
||||
signal_in[m
|
||||
end[m
|
||||
[31m- [m
|
||||
[32m+[m
|
||||
w = obj.fs_out ./ obj.fs_in ;[m
|
||||
blocklen_in = length(signal_in);[m
|
||||
blocklen_out = w*blocklen_in;[m
|
||||
[36m@@ -119,30 +119,31 @@[m [mclassdef Optical_Demultiplex < handle[m
|
||||
N = size(lo,1);[m
|
||||
C = size(lo,2);[m
|
||||
[m
|
||||
[31m- x_envelopes = zeros(N, C, 'like', signal_in);[m
|
||||
[31m- y_envelopes = zeros(N, C, 'like', signal_in);[m
|
||||
[32m+[m[32m % ---- VECTORIZED: Process all channels in parallel ----[m
|
||||
[32m+[m[32m % Batched FFT operates on each column simultaneously on GPU[m
|
||||
[m
|
||||
[31m- s1 = signal_in(:,1);[m
|
||||
[31m- s2 = signal_in(:,2);[m
|
||||
[32m+[m[32m % Extract polarization signals[m
|
||||
[32m+[m[32m s1 = signal_in(:,1); % X polarization [N×1][m
|
||||
[32m+[m[32m s2 = signal_in(:,2); % Y polarization [N×1][m
|
||||
[m
|
||||
[31m- % Reusable work buffers (avoid reallocations)[m
|
||||
[31m- wrk_time = zeros(N,1, 'like', signal_in);[m
|
||||
[31m- wrk_freq = zeros(N,1, 'like', signal_in);[m
|
||||
[32m+[m[32m % Broadcast signal to all channels and multiply with LO[m
|
||||
[32m+[m[32m % s1, s2 are [N×1], lo is [N×C] → result is [N×C][m
|
||||
[32m+[m[32m x_mixed = att .* s1 .* lo; % [N×C][m
|
||||
[32m+[m[32m y_mixed = att .* s2 .* lo; % [N×C][m
|
||||
[32m+[m
|
||||
[32m+[m[32m % Batched FFT: each column computed in parallel[m
|
||||
[32m+[m[32m x_freq = fft(x_mixed); % [N×C][m
|
||||
[32m+[m[32m y_freq = fft(y_mixed); % [N×C][m
|
||||
[32m+[m
|
||||
[32m+[m[32m % Apply filter (H is [N×1], broadcasts across columns)[m
|
||||
[32m+[m[32m x_filtered = x_freq .* H; % [N×C][m
|
||||
[32m+[m[32m y_filtered = y_freq .* H; % [N×C][m
|
||||
[32m+[m
|
||||
[32m+[m[32m % Batched IFFT[m
|
||||
[32m+[m[32m x_envelopes = ifft(x_filtered); % [N×C][m
|
||||
[32m+[m[32m y_envelopes = ifft(y_filtered); % [N×C][m
|
||||
[m
|
||||
[31m- for c = 1:C[m
|
||||
[31m- % ---- X branch ----[m
|
||||
[31m- wrk_time(:) = att .* s1 .* lo(:,c); % N×1[m
|
||||
[31m- wrk_freq(:) = fft(wrk_time); % N×1[m
|
||||
[31m- wrk_freq(:) = wrk_freq .* H; % N×1[m
|
||||
[31m- x_envelopes(:,c) = ifft(wrk_freq); % N×1[m
|
||||
[m
|
||||
[31m- % ---- Y branch ----[m
|
||||
[31m- wrk_time(:) = att .* s2 .* lo(:,c);[m
|
||||
[31m- wrk_freq(:) = fft(wrk_time);[m
|
||||
[31m- wrk_freq(:) = wrk_freq .* H;[m
|
||||
[31m- y_envelopes(:,c) = ifft(wrk_freq);[m
|
||||
[31m- end[m
|
||||
[31m- [m
|
||||
end[m
|
||||
end[m
|
||||
end[m
|
||||
[1mdiff --git a/Classes/02_optical/Optical_Multiplex.m b/Classes/02_optical/Optical_Multiplex.m[m
|
||||
[1mindex 1d722b0..7fc8a33 100644[m
|
||||
[1m--- a/Classes/02_optical/Optical_Multiplex.m[m
|
||||
[1m+++ b/Classes/02_optical/Optical_Multiplex.m[m
|
||||
[36m@@ -1,10 +1,10 @@[m
|
||||
Reference in New Issue
Block a user