Saturday, November 14, 2020

Microstrip coupled lines simulation anomaly in QUCS Studio

In this new entry of the blog, I will share the results of several simulations that prove there is some sort of bug in the equations of the microstrip coupled lines model in QUCS Studio, that produces wrong results in the simulations, once several parameters of the microstrip substrate are set in a determined manner.

This bug has been discovered by Margeride48. She brought to my attention several strange results simulating microstrip coupled lines. She wanted me to try to reproduce her results, just to confirm the wrong ones that she was getting from the simulator.

The following lines explain the anomaly in her words:

Focusing on coupled microstrips lines, have you tried thinner dielectrics ?
I'm simulating a 0.254mm I-Tera MT RF material.
S-parameter simulation values are going suddenly totally wrong when thickness is lower than 0.44 mm (eg 0.435mm).

Same for the Coupled Microstrip Line Calculator !
Impedances, losses, etc, become suddenly wrong.

On the opposite, the 'single' Microstrip Line Calculator leads to good results for 0.254mm thickness.

An EM simulation performed on the auto-generated PCB give good results with 0.254mm thickness for coupled microstrips.

We made a little investigation and I think that the best way of describing the findings is to consult the document linked to this entry that summarizes the results we got.

Microstrip Coupled lines simulation anomaly

Saturday, November 7, 2020

OCTAVE Functions for Basic Signal Processing

 

In the following entry of this blog, several functions built for OCTAVE will be presented.

The aim of these functions is to serve as basic tools for digital signal processing.

Each function will be tested separately and each test file will be included as part of the information provided for each function.

These functions will be presented in order of complexity, just a way of organizing the information.


The functions will be the following:

  • Bit_Seq_Gen.m: Function for getting a pseudo random bit sequence.

    • Test file: “Test_Bit_Seq_Gen.m

  • Unipolar2Polar.m: Function for transforming an unipolar bit sequence to a bipolar one.

    • Test file: “Test_Unipolar2Polar.m”.

  • NRZ_Sequence2.m: Function for getting a NRZ signal from a pseudo random bit sequence.

    • Test file: “Test_NRZ_sequence2.m”.

  • RZ_Sequence2.m: Function for getting a RZ signal from a pseudo random bit sequence.

    • Test file: “Test_RZ_sequence2.m”.

  • SP_L_Sequence2: Function for getting a SP-L signal from a pseudo random bit sequence.

    • Test file: “Test_SP_L_Sequence2.m”.

  • NRZ_Sequence.m: Function for getting a NRZ signal from a pseudo random bit sequence. In this case it is possible to define the transition time to high value and to low value, being both the same.

    • Test file: “Test_NRZ_Sequence.m”.

  • RZ_Sequence.m: Function for getting a RZ signal from a pseudo random bit sequence. In this case it is possible to define the transition time to high value and to low value, being both the same.

    • Test file: “Test_RZ_Sequence.m”.

  • RCF.m: Function for building the rise cosine filter response.

    • Test file: “Test_Rise_Cosine_filter.m”.


After those functions are presented, several examples of usage will be included as a short of annex.

 The document that presents these functions can be accessed in this link:

OCTAVE Basic functions for signal processing 

All the OCTAVE files that are presented in the document can be accessed in the following link:

OCTAVE Files for signal processing