Distributed Space-Time Coding in Cooperative Communication Systems