Signal spectrum have two side, positive and negative. I want to make these separate in two signal, by MATALB SIMULINK. But how? I can't find it's block on DSP or communication toolbox. I found a block that interactively generate filter, but this filters response is conjugate symmetric and that's not my desire. As replica of Fat32 : Hilbert approach not worked?!! Hilbert approach

  • 1
    $\begingroup$ what you're looking for sounds like the analytic signal; maybe that's a term that helps you find a good solution? $\endgroup$ Oct 7 '17 at 17:54
  • $\begingroup$ I'm thinking yes, it's easiest answer. $\endgroup$ Oct 8 '17 at 2:04

If you do not have a single side band separation block-diagram in Simulink, then you would try the following algorithm to separate the upper sideband from the lower sideband given that you have a block called Hilbert transformer.

Given that your original real valued baseband input signal is $x[n]$, then the following signal is called as the analytic signal:

$$ x^+[n] = x[n] + j \hat{x}[n] $$ where $$\hat{x}[n] = \mathcal{H} \{x[n] \} = \frac{1}{\pi n} \star x[n]$$ is called as the Hilbert transform of the signal $x[n]$.

It can be shown that the Fourier spectrum of the analytic signal is: $$ X^+(\omega) = \begin{cases} 2 X(\omega) &, \text{for } ~~~ 0 < \omega < \pi \\ 0 &, \text{for } ~~~ -\pi < \omega < 0\\ \end{cases} $$

Which is 2x the upper side band of the signal $x[n]$

  • $\begingroup$ It seems right but why this is not working? I have used your approach but it not worked, I attached it picture to my question. $\endgroup$ Oct 8 '17 at 2:48
  • $\begingroup$ Matlab Hilbert function returns the analytic signal $x^+$ instead of the sole Hilbert transform of the signal $\hat{x}$ so you don't have to add $x$ to it. Look at your documentation to see if Siulink Hilbert block also does the same ? $\endgroup$
    – Fat32
    Oct 8 '17 at 6:42
  • $\begingroup$ No, it's simply Hilbert transform and I'm shocked since its output isn't complex. $\endgroup$ Oct 8 '17 at 13:01
  • $\begingroup$ There's nothing to shock. The output of a (theoretical) Hilbert transform is real (given the input is real). What's complex is the analytic signal. Matlab function y=hilbert(x) however returns the complex analytic signal $x^+ = x + j \hat{x} $ instead $\endgroup$
    – Fat32
    Oct 8 '17 at 15:08
  • $\begingroup$ Hilbert's command working differently since it told on it's document: Discrete-time analytic signal using Hilbert transform $\endgroup$ Oct 8 '17 at 18:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.