Speckle noise is essentially a multiplicative noise, which may (or may not) have an additive noise as well (definitions vary depending upon circumstances). This paper provides a good overview of speckle noise, including descriptions and approaches to removing it.
Here is a some simple python code that can produce multiplicative speckle noise:
im = cv.LoadImage('tree.jpg', cv.CV_LOAD_IMAGE_GRAYSCALE)
mult_noise = cv.CreateImage((im.width,im.height), cv.IPL_DEPTH_32F, 1)
cv.RandArr(cv.RNG(6), mult_noise, cv.CV_RAND_NORMAL, 1, 0.1)
cv.Mul(im, mult_noise, im)
cv.ShowImage("tree with speckle noise", im)
with speckle noise:
Speckle noise is linked to the physical imaging process, so I’m not sure it’s easy (or even really possible) to simulate it in a general manner.
However, depending on your desired type of images, you can use other forms of noise to approach it. I guess that a multiplicative salt-and-pepper noise should more or less do the trick for simularing a SAR image.
Another (probably better) possibility is to explore the websites of NASA / ESA and look for SAR images (look for programs like Pleiades, Cosmo-Skymed and SAR Lupe). Some gated laser imaging labs have mnybe also released publicly some sample data.
It can be just a matter of adding gaussian noise to your image.
cvRandArr seems like a good candidate.
You can also have something more sophisticated by pondering your noise with your signal, which is also easy since it’s just some pixel-wide multiplication between original image and your noise.