I am reading about space-time codes. They break down further into 2 sub categories called space-time trellis codes and space-time block codes. It says that trellis codes offer both diversity and coding gain. However, block codes only offer diversity gain. I don't quite understand this.
I understand the general forms of diversity gains such as time, frequency, site, etc. However, how exactly is space-time codes different from space-diversity or even MIMO?
Further more, what exactly is the criteria for coding gain? My intuition is that if we are actually decoding the original message which was encoded using parity bits, etc, then this is coding gain. This confusion carries over when I am trying to understand the distinctions between trellis and block codes.