reducing grid size of elevation data

Although I know it's not accurate to resample 30 m grid size elevation
data to 10 m grid size, I want to do this to improve my display since
other layers are 10 m grid size.

What is a good method for doing this? r.surf.idw etc. seem to assume
random points. I would like the center of each 9 cells that used to be
one cell to remain the same, and the outer 8 to become an averaged value
of their neighbors. I am thinking of using r.neighbors. Has anyone
done anything like this? I promise I will not claim that it is accurate
10 m elevation data -- it will just look a little better.

Thanks, Jane Rossing