@@ -211,6 +211,32 @@ def testAppendSiso(self):
211211 frd_app_2 = frd1 .append (frd2 ).append (frd3 )
212212 np .testing .assert_allclose (d_app_2 , frd_app_2 .fresp )
213213
214+ def testAppendMimo (self ):
215+ # Create frequency responses
216+ rng = np .random .default_rng (1234 )
217+ n = 100
218+ w = np .arange (n )
219+ d1 = rng .uniform (size = (2 , 2 , n )) + 1j * rng .uniform (size = (2 , 2 , n ))
220+ d2 = rng .uniform (size = (3 , 1 , n )) + 1j * rng .uniform (size = (3 , 1 , n ))
221+ d3 = rng .uniform (size = (1 , 2 , n )) + 1j * rng .uniform (size = (1 , 2 , n ))
222+ frd1 = FrequencyResponseData (d1 , w )
223+ frd2 = FrequencyResponseData (d2 , w )
224+ frd3 = FrequencyResponseData (d3 , w )
225+ # Create appended frequency responses
226+ d_app_1 = np .zeros ((5 , 3 , d1 .shape [- 1 ]), dtype = complex )
227+ d_app_1 [:2 , :2 , :] = d1
228+ d_app_1 [2 :, 2 :, :] = d2
229+ d_app_2 = np .zeros ((6 , 5 , d1 .shape [- 1 ]), dtype = complex )
230+ d_app_2 [:2 , :2 , :] = d1
231+ d_app_2 [2 :5 , 2 :3 , :] = d2
232+ d_app_2 [5 :, 3 :, :] = d3
233+ # Test appending two FRDs
234+ frd_app_1 = frd1 .append (frd2 )
235+ np .testing .assert_allclose (d_app_1 , frd_app_1 .fresp )
236+ # Test appending three FRDs
237+ frd_app_2 = frd1 .append (frd2 ).append (frd3 )
238+ np .testing .assert_allclose (d_app_2 , frd_app_2 .fresp )
239+
214240 def testAuto (self ):
215241 omega = np .logspace (- 1 , 2 , 10 )
216242 f1 = _convert_to_frd (1 , omega )
0 commit comments