Commdvbs Simulink function block problem

1 view (last 30 days)
Georgios
Georgios on 21 Jan 2015
Answered: Georgios on 26 Jan 2015
Hello Everyone,
I am using commdvbs model for simulation purposes, My problem comes at a point where I need to perform cyclic shift to my bit sequence,more precisely that needs to be done,prior to the Viterbi Decoder.
So,I do that by inserting a function block and using circshift (you are more than welcome to suggest alternative approaches).
Now,when the simulation time is increased to more than a minimal point(where the matrices used stopping being 2 dimensional), more “pages” (third,fourth,fifth...dimensions) are turning up to accommodate the data generated.Then, at the point where my function resides,simulation somehow gets “blocked”,meaning that it enters the function block and performs circshift for a number of times (equal to the number of the 3rd dimension) with the difference that is ONLY for the first input vector of the first dimension (page),without updating to the vector of the second dimension and so on.
For example if I have a 3 dimension matrix containing 3 vectors A(3,1,3) ,that needs to be processed as:
First: circshift(A(:,:,1),2,2)
Second: circshift(A(:,:,2),2,2)
third: circshift(A(:,:,3),2,2)
Instead it does:
First: circshift(A(:,:,1),2,2)
Second: circshift(A(:,:,1),2,2)
third: circshift(A(:,:,1),2,2)
Does anyone know any workaround this problem?
George

Answers (1)

Georgios
Georgios on 26 Jan 2015
Hello Everyone,
The model follows a frame based simulation,So by setting the output of the function block to frame based seems to fight the problem.

Categories

Find more on Simulink Functions in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!