Page 215 -
P. 215
โครงการหนังสืออิเล็กทรอนิกส์ เฉลิมพระเกียรติสมเด็จพระเทพรัตนราชสุดาฯ สยามบรมราชกุมารี
206
a = 0; b = 1;
end
switch lower(type) %เปลี่ยนตัวอักษรที่เขามาใหเปนพิมพเล็กเสมอ
case 'uniform' % สัญญาณรบกวนแบบ uniform
R = a + (b-a)*rand(M,N);
case 'gaussian' % สัญญาณรบกวนแบบ Gaussian
R = a + b*randn(M,N);
case 'lognormal' % สัญญาณรบกวนแบบ lognormal
if nargin <= 3
a = 1; b =0,25;
end
R = a*exp(b*randn(M,N));
case 'rayleigh' % สัญญาณรบกวนแบบ Rayleigh
R = a + (-b*log(1-rand(M,N))).^0.5;
otherwise
error ('Use: uniform, gaussian, lognormal and rayleigh only');
end
เมื่อเขียนฟงกชันดวยโปรแกรม editor เรียบรอยแลว ตองบันทึกไฟลที่เขียนขึ้นดวย
ชื่อเดียวกันกับชื่อฟงกชันที่ตั้งขึ้นมา ในกรณีนี้คือบันทึกขอมูลลงในไฟล ชื่อ
noiseGen.m เมื่อตองการใชงานฟงกชันนี้ ใหเรียกชื่อฟงกชันที่สรางขึ้นไดโดยตรง
พรอมทั้งใสพารามิเตอรที่ฟงกชันตองการตามตัวอยางการใชงานตอไปนี้
>> rows = 1000; cols = 100;
% เรียกฟงกชันเพื่อสรางสัญญาณรบกวนที่มีการกระจายตัวแบบ Rayleigh
>> noise = noiseGen('rayleigh',rows, cols, 0, 1);
>> size = rows*cols;