SSIM calculation of 2 signals
    14 views (last 30 days)
  
       Show older comments
    
How can I calculate the SSIM (Structural similarity index) of 2 1D signals ?
0 Comments
Answers (1)
  Prasanna
      
 on 22 Aug 2024
        Hi Jessica, 
The Structural Similarity Index (SSIM) is a method originally designed to measure the similarity between two images. However, it can be adapted to compare 1D signals as well. In MATLAB, you can use the ‘ssim’ function from the Image Processing Toolbox, which is primarily intended for images, but with a little adjustment, by making the signals of equal size and reshaping the signals to a 2D array with one row, it can be applied to 1D signals. A sample code for the same looks as the following: 
% Example 1D signals 
signal1 = randn(1, 1000); % Replace with your first signal 
signal2 = randn(1, 1000); % Replace with your second signal 
% Ensure both the signals have same size 
% Reshape the signals to 2D arrays with one row 
signal1_2d = reshape(signal1, 1, []); 
signal2_2d = reshape(signal2, 1, []); 
% Calculate SSIM 
ssimValue = ssim(signal1_2d, signal2_2d); 
However, SSIM is sensitive to changes in signal amplitude, so the interpretations can be varied. If you want to measure signal similarities without using SSIM, you can refer to the following documentation: https://www.mathworks.com/help/signal/ug/measuring-signal-similarities.html. 
For more information on the ‘ssim’ function, refer to the following documentation: https://www.mathworks.com/help/images/ref/ssim.html 
Hope this helps! 
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
